package com.wtd; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; public class L16 { /** * @desc 需要将list传到另个方法里怎么用list遍历userList和dpList? * @param args * @throws Exception */…
JDK1.4中 Map map = new HashMap(); Iterator it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); Object key = entry.getKey(); Object value = entry.getValue(); } JDK1.5中,应用新特性For-Each循环 Map m = new HashMap(); f…
1. HashSet类的概述: (1)不保证set的迭代顺序 (2)特别是它不保证该顺序恒久不变 HashSet底层数据结构是哈希表,哈希表依赖于哈希值存储,通过哈希值来确定元素的位置,  而保证元素唯一性是通过hashCode方法 和 equals方法完成的. 当哈希值不相同的时候,不需要判断equals方法,只要当哈希值相同才会判断equals方法. 2. HashSet如何保证元素唯一性 保证元素唯一性,底层依赖于两个方法:   • int hashCode()   • boolean e…
HashSet如何保证元素唯一性的原理 1.HashSet原理 a. 我们使用Set集合都是需要去掉重复元素的, 如果在存储的时候逐个equals()比较, 效率较低,哈希算法提高了去重复的效率, 降低了使用equals()方法的次数 b. 当HashSet调用add()方法存储对象的时候, 先调用对象的hashCode()方法得到一个哈希值, 然后在集合中查找是否有哈希值相同的对象 c. 如果没有哈希值相同的对象就直接存入集合 d.如果有哈希值相同的对象, 就和哈希值相同的对象逐个进行equa…
6,Map集合遍历的4中方法? 5,List遍历时如何remove元素 4.漏网之鱼-for循环递增下标方式遍历集合,并删除元素 如果你用for循环递增下标方式遍历集合,在遍历过程中删除元素,你可能会遗漏了某些元素. 3.ConcurrentModificationException异常-----Iterator遍历集合过程中用其他手段(或其他线程)操作元素 2.Map集合操作陷阱; 1.Set集合操作陷阱---一个不包含重复元素的 collection.更确切地讲,set 不包含满足 e1.e…
开发中,常有场景:遍历集合,依次判断是否符合条件,如符合条件则删除当前元素. 不知不觉中,有些陷阱,不知你有没有犯. 一.漏网之鱼-for循环递增下标方式遍历集合,并删除元素 如果你用for循环递增下标方式遍历集合,在遍历过程中删除元素,你可能会遗漏了某些元素.说那么说可能也说不清楚,看以下示例: import java.util.ArrayList; import java.util.List; public class ListTest_Unwork { public static void…
1. Map集合的遍历(键值对对象找键和值) Map -- 夫妻对  思路:  A: 获取所有结婚证的集合  B: 遍历结婚证的集合,得到每一个结婚证  C: 根据结婚证获取丈夫和妻子 转换:  A: 获取所有键值对对象的集合  B: 遍历键值对对象的集合,得到每一个键值对对象  C: 根据键值对对象获取键和值 2. 代码示例: package cn.itcast_01; import java.util.HashMap; import java.util.Map; import java.ut…
1 package cn.itcast.p4.hashset.test; 2 3 import java.util.HashSet; 4 import java.util.Iterator; 5 6 import cn.itcast.p.bean.Person; 7 /* 8 * 往hashSet集合中存储Person对象.如果姓名和年龄相同,视为同一个人.视为相同元素. 9 */ 10 public class HashSetTest { 11 12 public static void ma…
1.内部的方法:hasNext() 和 next() 推荐的方式: //hasNext():判断是否还有下一个元素while(iterator.hasNext()){ //next():①指针下移 ②将下移以后集合位置上的元素返回 System.out.println(iterator.next());}2.集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前. 注意两种错误方式: //错误方式一:Iterator iterator = coll.…
方法一 通过Map.entrySet遍历key和value,在for-each循环中使用entries来遍历.推荐,尤其是容量大时 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (Map.Entry<Integer, Integer> entry : map.entrySet()) { System.out.pri…