对集合框架的理解
1、集合框架的概念由于程序语言在使用中可能会对多个数据进行存储,所以需要用一种东西来放置以便统一使用或者提取,于是诞生了集合框架这种容器。它能够给用户提供元素的增加,删减,替换和查找的功能,让操作更加方便简洁而且效率更高。2、集合框架的种类集合框架主要由几个重要的接口组成:collection,map和iterator。a.Collection接口:是所有集合类的根接口,其又由几个子接口
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略过)
更多推荐
所有评论(0)