(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());

        }









    }







}