Java 集合框架_下

  Map接口

  特点:    

    【1】Map接口称为键值对集合或者映射集合,其中的元素(entry)是以键值对(key-value)的形式存在。

    【2】Map 容器接口中提供了增、删、改、查的方式对集合进行操作。

    【3】Map接口中都是通过key来操作键值对,一般key是已知。通过key获取value。

Map接口的实现类HashMap、LinkedHashMap、TreeMap

1.1   HashMap

    【1】HashMap 是Map的实现类,key以HashSet存储。

    【2】HashMap 线程不安全,jdk1.2;Hashtable是HashMap的线程安全版本,jdk1.0

    【3】 向HashMap中存储元素时,key一定要实现hashCode和equals

    【4】一般建议使用String作为Map接口的key

1.2   LinkedHashMap

    【1】LinkedHashMap是Map接口的实现类,key以LinkedHashSet存储。哈希表散列key,链表维持key的添加顺序。

1.3   TreeMap

   【1】TreeMap是Map的实现类,key以TreeSet存储。

public static void main(String[] args) {
        
        
        /*TreeMap<String, Object> map = new TreeMap<String,Object>(new Comparator<String>() {

            @Override
            public int compare(String o1, String o2) {
                return o1.length() - o2.length();
            }
        });
        
        ArrayList<String> list2 = new ArrayList<String>();
        list2.add("ben");
        list2.add("bill");
        map.put("Aa", list2);
        
        ArrayList<String> list1 = new ArrayList<String>();
        list1.add("alex");
        list1.add("alice");
        list1.add("allen");
        map.put("B", list1);
        
        System.out.println(map);*/
        
        
        
        TreeMap<Student, Object> map = new TreeMap<Student,Object>(new Comparator<Student>() {

            @Override
            public int compare(Student o1, Student o2) {
                return o1.getAge() - o2.getAge();
            }
        });
        
        ArrayList<String> list1 = new ArrayList<String>();
        list1.add("alex");
        list1.add("alice");
        list1.add("allen");
        Student s1 = new Student("001", "大狗", 20);
        map.put(s1, list1);
        
        
        ArrayList<String> list2 = new ArrayList<String>();
        list2.add("ben");
        list2.add("bill");
        Student s2 = new Student("001", "2狗", 20);
        // 修改
        map.put(s2, list2);
        System.out.println(map);
        
    }

1.1   总结

          

猜你喜欢

转载自www.cnblogs.com/dedema/p/10821582.html