List输出的顺序和输入的顺序一致,允许重复。
Set 输出的顺序和输入的顺序不一致,不允许有重复数据
List和Set继承Collection接口,所以增加方法是一样的add(),获取元素时,List可以有下标,普通for循环、增强for循环、迭代器三种方式。Set没有下标,所以有增强for循环、迭代器两种方式。
map存Key ,value两个值(键值对),是无序的,通过key可以获取到value的值。put(key,value)方法增加数据,get(key)获取value值。通过entrySet()和keySet()先获取Set集合。循环集合Set获取所有数据。
//如果要遍历map,必须先转换成set,然后对set进行遍历 Set<Entry<String,Student>> entrySet = map.entrySet();//调用entrySet方法,将map转换成set集合,每个元素是Entry<String,Student>,一个Entry对应map一个元素 System.out.println("entrySet()--foreach:"); for(Entry<String,Student> temp:entrySet){//for(每个元素的类型 临时变量名:集合名) System.out.println(temp.getKey()+"===="+temp.getValue());//一个temp对应entrySet集合中一个元素,也就是map中的一个元素。 // 调用Entry类中的getKey和getValue方法,可以获取map中某个元素对应的key值和value值 } System.out.println("entrySet()--迭代器:"); Iterator<Entry<String,Student>> entryIter = entrySet.iterator();//将entrySet集合转换成迭代器,迭代器中泛型和集合泛型一致 while(entryIter.hasNext()){ // 不能两次调用next() // System.out.println(entryIter.next().getKey()+"===="entryIter.next().getValue()); Entry<String,Student> temp = entryIter.next();//通过迭代器获取其中一个元素 System.out.println(temp.getKey()+"===="+temp.getValue()); } Set<String> keySet = map.keySet();//通过keySet方法转换成Set集合,集合里每一个元素是key值 Iterator<String> keyIter = keySet.iterator();//将set转换成迭代器,迭代器泛型和集合set泛型一致 while(keyIter.hasNext()){ String temp = keyIter.next();//获取迭代器中的某一个元素,也就是map中的key值,temp中存储的是map中的key值,例如javaee001 System.out.println(temp+"======="+map.get(temp));//map.get(key)得到value,temp里存储的就是key值 }
标签:map,set,迭代,temp,entrySet,list,Set,key From: https://www.cnblogs.com/cn-iwish/p/17180927.html