java基础学习_集合类03_用户登录注册案例(集合版)、Set集合、Collection集合总结_day17总结
2018-03-27 23:42
746 查看
=============================================================================
=============================================================================
涉及到的知识点有:
1:用户登录注册案例(集合版)(理解)
2:Set集合(理解)
(1)Set集合的特点
(2)HashSet集合(掌握)
(3)TreeSet集合(理解)
(4)案例
3:Collection集合总结(掌握)
4:针对Collection集合我们到底使用谁呢?(掌握)
5:在集合中常见的数据结构(掌握)
=============================================================================
=============================================================================
1:用户登录注册案例(集合版)(理解)
-----------------------------------------------------------------------------
2:Set集合(理解)
(1)Set集合的特点
无序:存和取的顺序不一致,无索引,不可以存储重复元素(唯一)
---------------------------------------
(2)HashSet集合(掌握)
A:底层的数据结构是哈希表(是一个元素为链表的数组)
TreeSetDemo.java
-----------------------------------------------------------------------------
3:Collection集合总结(掌握)
-----------------------------------------------------------------------------
4:针对Collection集合我们到底使用谁呢?(掌握)
-----------------------------------------------------------------------------
5:在集合中常见的数据结构(掌握)
ArrayXxx: 底层数据结构是数组,查询快,增删慢。
LinkedXxx: 底层数据结构是链表,查询慢,增删快。
HashXxx: 底层数据结构是哈希表。依赖两个方法:hashCode()和equals()。
TreeXxx: 底层数据结构是二叉树。两种方式排序:自然排序和比较器排序。
=============================================================================
=============================================================================
涉及到的知识点有:
1:用户登录注册案例(集合版)(理解)
2:Set集合(理解)
(1)Set集合的特点
(2)HashSet集合(掌握)
(3)TreeSet集合(理解)
(4)案例
3:Collection集合总结(掌握)
4:针对Collection集合我们到底使用谁呢?(掌握)
5:在集合中常见的数据结构(掌握)
=============================================================================
=============================================================================
1:用户登录注册案例(集合版)(理解)
-----------------------------------------------------------------------------
2:Set集合(理解)
(1)Set集合的特点
无序:存和取的顺序不一致,无索引,不可以存储重复元素(唯一)
---------------------------------------
(2)HashSet集合(掌握)
A:底层的数据结构是哈希表(是一个元素为链表的数组)
package cn.itcast_09; import java.util.Comparator; import java.util.Scanner; import java.util.TreeSet; /* * 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台 * * 分析: * A:定义学生类 * B:创建一个TreeSet集合 * C:总分从高到底如何实现呢? * D:键盘录入5个学生信息 * E:遍历TreeSet集合 */ public class TreeSetDemo { public static void main(String[] args) { // 创建一个TreeSet集合 TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() { @Override public int compare(Student s1, Student s2) { // 总分从高到低 int num = s2.getSum() - s1.getSum(); // 总分相同的不一定语文相同 int num2 = (num == 0 ? s1.getChinese() - s2.getChinese() : num); // 总分和语文相同的不一定数序相同 int num3 = (num2 == 0 ? s1.getMath() - s2.getMath() : num2); // 总分、语文和数学相同的不一定英语相同 int num4 = (num3 == 0 ? s1.getEnglish() - s2.getEnglish() : num3); // 总分、语文、数学和英语相同的姓名还不一定相同 int num5 = (num4 == 0 ? s1.getName().compareTo(s2.getName()) : num4); return num5; } }); System.out.println("学生信息录入开始"); // 键盘录入5个学生信息 for (int x = 1; x <= 5; x++) { Scanner sc = new Scanner(System.in); System.out.println("请输入第" + x + "个学生的姓名:"); String name = sc.nextLine(); System.out.println("请输入第" + x + "个学生的语文成绩:"); String chineseString = sc.nextLine(); System.out.println("请输入第" + x + "个学生的数学成绩:"); String mathString = sc.nextLine(); System.out.println("请输入第" + x + "个学生的英语成绩:"); String englishString = sc.nextLine(); // 把录入的数据封装到学生对象中 Student s = new Student(); s.setName(name); s.setChinese(Integer.parseInt(chineseString)); // 把字符串类型转换为int类型 s.setMath(Integer.parseInt(mathString)); // 把字符串类型转换为int类型 s.setEnglish(Integer.parseInt(englishString)); // 把字符串类型转换为int类型 // 把学生对象添加到集合 ts.add(s); } System.out.println("学生信息录入完毕"); System.out.println("学习信息从高到低排序如下:"); System.out.println("姓名\t语文成绩\t数学成绩\t英语成绩"); // 遍历TreeSet集合 for (Student s : ts) { System.out.println(s.getName() + "\t" + s.getChinese() + "\t" + s.getMath() + "\t" + s.getEnglish()); } } }
TreeSetDemo.java
-----------------------------------------------------------------------------
3:Collection集合总结(掌握)
Collection |--List 有序,元素可重复 |--ArrayList 底层数据结构是数组。查询快,增删慢。 线程不安全,效率高 |--Vector 底层数据结构是数组。查询快,增删慢。 线程安全,效率低 |--LinkedList 底层数据结构是链表。查询慢,增删快。 线程不安全,效率高 |--Set 无序,元素唯一 |--HashSet 底层数据结构是哈希表。 如何保证元素唯一性的呢? 依赖两个方法:hashCode()和equals() 开发中自动生成这两个方法即可。 |--LinkedHashSet 底层数据结构是链表和哈希表。 由链表保证元素有序。 由哈希表保证元素唯一。 |--TreeSet 底层数据结构是红黑树(二叉树)。 如何保证元素排序的呢? 自然排序 比较器排序 如何保证元素唯一性的呢? 根据比较的返回值是否是0来决定。
-----------------------------------------------------------------------------
4:针对Collection集合我们到底使用谁呢?(掌握)
元素唯一吗? 是:用Set 元素排序吗? 是:TreeSet 否:HashSet 如果你知道是用Set,但是不知道是用哪个Set,就用HashSet。 否:用List 要安全吗? 是:Vector 否:ArrayList 或者 LinkedList 查询多:ArrayList 增删多:LinkedList 如果你知道是用List,但是不知道是用哪个List,就用ArrayList。 --------------------------------------- 如果你知道是用 Collection 集合,但是不知道使用谁,就用 ArrayList。 如果你仅仅知道用集合,就用ArrayList。 由此可见,ArrayList用的最多。
-----------------------------------------------------------------------------
5:在集合中常见的数据结构(掌握)
ArrayXxx: 底层数据结构是数组,查询快,增删慢。
LinkedXxx: 底层数据结构是链表,查询慢,增删快。
HashXxx: 底层数据结构是哈希表。依赖两个方法:hashCode()和equals()。
TreeXxx: 底层数据结构是二叉树。两种方式排序:自然排序和比较器排序。
=============================================================================
相关文章推荐
- 重踏学习Java路上_Day17(登录注册案例,Set集合,Collection集合总结,在集合中常见的数据结构)
- Java基础-17总结,登录注册案例,Set集合,HashSet,TreeSet,LinkHashSet
- Java基础-17总结,登录注册案例,Set集合,HashSet,TreeSet,LinkHashSet
- 17 API-集合(登录注册案例集合版,Set集合(Set_HashSet_TreeSet),Collection单列集合总结)
- Java基础知识强化之集合框架笔记37:用户登录注册案例
- java 集合类(collection(list set) map)学习总结
- Java基础学习笔记16——(Set集合,Collection集合总结)
- Android基础学习总结(十二)——利用Bmob实现用户账户体系(注册、登录、验证等)
- Java实现--登录和注册案例(把用户信息存进集合)
- 黑马程序员——Java基础——Collection集合的总结
- JAVA_集合总结之Collection——Set
- JavaWeb-13 (用户的注册和登录案例)
- Java基础知识强化之集合框架笔记03:Collection集合的功能概述
- 复习java基础第三天(集合:Collection、Set、HashSet、LinkedHashSet、TreeSet)
- 【转载】 javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册 - 孤傲苍狼 - 博 http://www.cnblogs.com/xdp-gacl/
- JavaWeb学习总结(基于Servlet+JSP+JavaBean开发模式的用户登录注册)
- 黑马程序员_Java(登陆注册案例,set集合,map集合,Collections)
- JAVA基础学习之 Map集合、集合框架工具类Collections,Arrays、可变参数、List和Set集合框架什么时候使用等(4)
- java基础学习--Collection集合
- 黑马程序员——Java基础---集合(一)---Collection、set、list