Collection/迭代器

1.Collection中的元素是孤立的是单身,需要一个一个向里面存;Map集合中值是成对存在的,每个元素由键和值两部分组成,取值时需要通过键来得到相应的值
2.Collection是单列集合,Map是双列集合;Map中不能包含相同重复的键,可以存重复的值,一个键只能对应一个值,
3.Map集合中包含HashMap(怎么存不一定怎么取)和LinkHahMap(怎么存就怎么取)
4.HashMap<K,V>(泛型:键,值):存取数据才有的哈希表结果,元素怎么存不一定怎么取,由于要保证键的唯一不重复,需要重写键的hashcode()和equals()方法
5.创建map集合:Map<String,String> map =new HashMap<String,String>();向map存值:map.put("","");Map集合的取值方式:map.get(key)
map不能存重复值的键,如果存了重复键,那么后来键对应的值会覆盖前面键的值,但是值可以重复存入,一个键只能对应一个值
6.遍历不能用增强for:因为Map集合的泛型有俩,不知道遍历哪一个;不能用迭代器:因为Map集合没有迭代器对象,迭代器只存在于Collection集合中;不能用普通for:因为没有下标
7.Map的遍历方式;1.keyset():增强for遍历和迭代器遍历;2.entry()方法遍历:增强for和迭代器
8.keyset()方式遍历:Set<String> set=map.keyset();就是把map集合中的所有的key放到一个Set集合中(set);for(String s:set){system.out.println(map.get(s))}
通过增强for遍历key所在的集合,得到每一个key再通过map.get(key)的方式找到key所对应的value的值
迭代器:Iterator<String> it=set.iterator();获取迭代器对象,泛型就写和key一样的类型while(it.hasNext()){String key=it.next();//需要设置个变量来接一下迭代器给出的 key值System.out.println(key+"..."+map.get(key));//因为迭代器是一直向后走,不能往前走,所以外面得顶一个变量接一下,然后遍历这个变量}
9.entry的遍历方式:entry+增强for进行遍历:set<Map.entry<String,String>> map=map.entryset();这里的entry是map类的成员内部类,通过外部成员名.内部成员名<>的方式调用
这里是把map的所有的键和值都封装成一个个的entry对象,在把这些entry对象存到一个Set集合里面,
然后通过增强for遍历set集合里的每一个entry对象,for(Map.entry<String,String> entry:set){int key=entry.getkey();string value=entry.getvalue()};这里的增强for的泛型
就写set里的泛型就是map的entry对象,得到每个entry对象后再定义向下类型的变量来接收key和value值,通过entry.getkey()得键,entry.getvalue()得值
迭代器Iterator方式遍历:在定义完map集合并把entry对象赋值到Set集合后,定义迭代器对象Iterator<Map.entry<String,String>> it=set.iterator;这里泛型和set的一样,获取到
迭代器对象后循环;while(it.hashnext()){Map.entry<String,String> entry=it.next();这里定义个entry对象接收it.next()遍历后得到的entry对象,然后通过
entry.getkey()得键;entry.getvalue()得值
10.Map<Person,String> map=new HashMap<Person,String>();
map.put(new Person("",""),"java")如果key存的是重复值那么就需要要自定义类里面重写Equals方法和hascode方法,如果是值那么就不用了,因为可以存重复值
11.for(Person p:set){System.out.println(p+"..."+map.get(p));//通过增强for得到每一个key值然后通过.get()方法得到value值}
遍历的方式有两种,一个是通过keyset()方法把key值都存到一个Set集合里面;再通过增强for(通过得到的key值,.get(key)方法得到value值
另一个通过keyset()方法把key值都存到一个se的集合里面用过迭代器(itaretor)得到每一个key值,再通过.get(key)方法得到value值
2.通过entry()方法来遍历:通过.entry()方法得到set集合对象把map里的每一对key和value封装成一个对象,通过变量对象后用.getkey()
和.getvalue()方法来得到值,1.增强for遍历:for(对象的类型<> 变量名:对象所在的set集合)得到每一个set封装的enty对象;通过entry对象
.getkey()和.getvalue()方法得到相应的值然后打印;
2.通过迭代器遍历:把Map中的每一个entry对象封装到Set集合里面,定义迭代器对象,泛型是entry对象,再用while进行遍历,得到的it.next()
实际上就是entry对象,再通过.getkey()和.getvalue()得到相应的key和value}

原文地址:https://www.cnblogs.com/hankai2735/p/11417426.html