图解java容器的遍历和Iterator迭代。list、set、map。
1.list与set的父类接口为collection,如今vector已经被弃用。
2.list允许添加有序可重复的元素,set提供添加无序不可重复的元素,map添加一对键值(key和value),key不可以重复,但是可以是空值,如果key重复,value会被后来添加的值覆盖。这是他们之间的相同点与区别。
3.treeset和treemap都提供自带的排序功能,实现了comparator接口。如果泛型中添加的类有多种参数,则必须重写compare方法,比较的是key的值,否则无法添加第二个元素。hashmap与hashset会比较常用。
4.容器的遍历常用方法代码介绍:
for循环、foreach和iterator迭代器。iterator迭代方法如下:
Set<String> a = countries.keySet();
Iterator<String> i = a.iterator();
while(i.hasNext()) {
String key = i.next();
String value = countries.get(key);
System.out.println(“国家缩写:” + key + ” ” + “国家全名:” + value);
}
map的遍历可以用entrySet来调用set的迭代器。Map.Entry<K,V>在使用时看作是一种特殊的类。如下代码:
Map<Class, Student> m = new HashMap<Class, Student>();
Set<Entry<Class, Student>> set = m.entrySet();
Iterator<Entry<Class, Student>> it = set.iterator();
while(it.hasNext()) {
Map.Entry<Class, Student> entry = it.next();
Class key = entry.getKey();
Student value = entry.getValue(); System.out.println(key.toString() + ” ” + value.toString());
}