(K,V)集合类的几种遍历方式
这里提到的是以键值对存储的结合类的几种遍历方式,以treeMap为例
1.keyset
就是用一个set接一下treeMap.keySet();
这是一个键的集合,然后遍历一下这个集合
迭代器/增强for
treeMap.get 键的内容
2.Collection
treeMap.values
同样,迭代器/增强for
不过这个方法输出就行,比较快,缺点是没有key的信息
3.entrySet
几个Map类在底层实现了entry接口
所以获取一下treeMap的entry集合
迭代/增强for一下这个集合
用迭代器的话要注意迭代器类型是Obj,需要转一下型。
示例
public class TreeMapDemo {
public static void main(String[] args) {
TreeMap treeMap = new TreeMap(
new Comparator() {
@Override
public int compare(Object o1, Object o2) {
return ((String) o2).length() - ((String) o1).length();
}
}
);
treeMap.put("abc",1);
treeMap.put("ab",2);
System.out.println(treeMap);
//六大遍历
//key set
Set set = treeMap.keySet();
for(Object key:set){
System.out.println(key + "-" + treeMap.get(key));
}
// itit
Iterator iterator = set.iterator();
while (iterator.hasNext()) {
Object next = iterator.next();
System.out.println(next + "-" + treeMap.get(next));
}
//map
Collection values = treeMap.values();
for (Object val:values ){
System.out.println(val);
}
// Collections.reverse(values);
//entrySET
Set entrySet = treeMap.entrySet();
iterator = entrySet.iterator();
while (iterator.hasNext()) {
Object next = iterator.next();
Map.Entry map = (Map.Entry) next;
System.out.println(map.getKey());
System.out.println(map.getValue());
}
}
}