标签:map each key 支持 reac compareto hashset 存储 size
先写一下3这种遍历方法
for循环
List<Teacher> list = new ArrayList<>(); list.add(new Teacher("张三",21)); list.add(new Teacher("李四",28)); list.add(new Teacher("王五",18)); // for 循环 for(int i = 0;i<list.size();i++){ System.out.println(list.get(i)); } // 增强for :foreach+补全 for (Object object : list) { System.out.println(object); } // 迭代器ITerator, 这是集合特有的 Iterator it = list.iterator(); while(it.hasNext()){ Object next = it.next(); Teacher tea = (Teacher)next; if(tea.getAge()<20){ it.remove(); System.out.println(tea);// 不合格学生 } }
特点:无序,无下标,不重复
set没有特有的方法,都是继承于父接口
底层是通过哈希计算得出内存的地址,如果地址不同则直接赋值,如果地址相同就在看内容。
相同对象,哈希值一定相同,不同对象哈希值可能相同
①HashSet 作为主要实现类
②TreeSet 实现 自然排序
定制排序
定制排序的优先级高,而且和类结耦!!!
③LinkedHashSet
基于链表的结构 多维护一层添加顺序
遍历:
所有的key
keySet() ==> Set 集合
所有的value
values() ==> Collection集合
所有的键值对
entrySet ==> Set 集合
在得到键值对后 键值对的类型 Map.Entry 类型
getKey() 获取该键值对的键
标签:map each key 支持 reac compareto hashset 存储 size
原文地址:https://www.cnblogs.com/a276665092/p/12024991.html