1、集合框架的概念
由于程序语言在使用中可能会对多个数据进行存储,所以需要用一种东西来放置以便统一使用或者提取,于是诞生了集合框架这种容器。它能够给用户提供元素的增加,删减,替换和查找的功能,让操作更加方便简洁而且效率更高。

2、集合框架的种类
集合框架主要由几个重要的接口组成:collection,map和iterator。

a.Collection接口:
是所有集合类的根接口,其又由几个子接口组成:List接口,Set接口,Queue接口。
这里写图片描述
List接口由两个类来进行实现:ArrayList类和LinkedList类。
Set接口由三个类来进行实现:HashSet类和TreeList类。
Queue接口下有一个子接口:Deque接口,并且也由LinkedList类实现。

b.Map接口:
是由两种元素组成的集合,是一个成套的集合。可以通过一个元素去映射另一个元素的值,被称为键值对,主要由两部分组成:HashMap类,TreeMap类和Entry接口。

c.Iterator接口:
是一种迭代器,可以对集合里面的元素进行遍历,由一个ListIterator继承。

3、每种集合的特点
List集合的特点:其中的元素是允许重复的,按照添加的先后顺序进行排列,所以List是有索引的。
a. ArrayList是数组列表,采用数组的方式进行储存;

List<String> list2 = new ArrayList<String>();
        list2.add("apple");
        list2.add("pear");
        list2.add("banana");
        list2.add("banana");
        System.out.println(list2);
        (按照增加的顺序输出结果为:[apple, pear, banana, banana],并且元素可以重复)

b. LinkedList是一种链表,是通过节点直接彼此连接来实现的。每一个节点都包含前一个节点的引用,后一个节点的引用和节点存储的值。当一个新节点插入时,只需要修改其中保持先后关系的节点的引用即可,当删除记录时也一样。

Set集合的特点:其中的元素是不允许重复的,但是无序的,所以Set是没有索引的。
c. HashSet底层是哈希码值,基于HashMap实现的;

Set<String> set = new HashSet<>();
        set.add("C");
        set.add("A");
        set.add("R");
        set.add("S");
        set.add("S");       
        set.add(null);
        set.add(null);      
        System.out.println(set);
        (无序输出结果为:[null, A, R, C, S],并且没有重复代码)

d. TreeSet元素不重复,并且元素实现了排序(TreeSet中元素不能为null)。

Set<Integer> integerSet = new TreeSet<>();
        integerSet.add(5);
        integerSet.add(12000);
        integerSet.add(33);     
        System.out.println(integerSet);
        (有序输出的结果为:[5,33,12000])

(Queue略过)
Map集合的特点:Map中保存的是键值对。
e. HashMap的key值的hashCode和equals保证元素唯一性。

Map<String, Country> ku = new HashMap<>();
        Country aus = new Country("澳大利亚");
        // 增加
        ku.put("kola", aus);
        ku.put("eagle", new Country("美国"));
        ku.put("panda", new Country("中国"));
        // 覆盖
        ku.put("panda", new Country("中国1"));
        System.out.println(ku);
        (按照增加和覆盖的顺序输出:{panda=Country [ chineseName=中国1], eagle=Country [ chineseName=美国], kola=Country [ chineseName=澳大利亚]})

f. TreeMap集合的特点:不仅可以保证key不重复,还可以对value数据进行排序。(但是往往HaseMap的速度更快)

(Entry略过)
(iterator略过)

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐