开发中如何选择集合实现类
- 先判断存储的类型(一组对象还是一组键值对)
- 一组对象: Collection接口
允许重复:List
增删多 :LinkedList(底层维护一个双向链表)
改查多:Arraylist(底层维护Object的可变数组)
不允许重复:Set
无序 :HashSet(底层是HashMap维护(7:数组+链表 8:数组+链表+红黑树))
排序:treeSet
插入和去取出顺序一致:LinkedHashSet,(数组和双向链表)
-
一组键值对:Map
键无序:HashMap(底层是(7:数组+链表 8:数组+链表+红黑树))
键排序:TreeMap
检查如何取出顺序一致:LinkedHashMap
读取文件:properties
学习思路:
了解特点
分析底层机制
源代码阅读
集合的使用场景
集合的优点 |
---|
可以动态保存任意多个对象 |
提供一系列方便的操作对象的方法 |
使用集合,添加,删除新元素的代码,简单明了 |
//集合主要有两组(单列集合,双列集合)
//Collection 接口有两个重要的子接口 : list set ,他们的实现子类都是单列集合,只有value
//Map 接口的实现集合,是双列集合 存放<key,value>
集合框架体系(背,重要)
Collection
特点:
- Collection接口实现的子了i可以存放多个元素,每个元素都可以是Object
- 有些Collection实现类可以存放重复的元素
常用方法练习:
List arraylist = new ArrayList();
//添加元素.添加进去就变成了对象
arraylist.add(10);//自动装箱成Integer
arraylist.add(true);
//删除执行的元素
arraylist.remove(10);
//查找
arraylist.contains(10);
//返回元素的个数
arraylist.size();
//判空
arraylist.isEmpty();
//清空
arraylist.clear();
迭代器(Iterator)
Iterator 对象成为迭代器,主要用于遍历Collection集合中的元素
实现了Collection接口的集合类都有一个Iterator ()方法,用于放回一个实现Iterator 接口的对象,即一个迭代器。
Iterator 仅仅用来遍历,不能存放对象
Iterator 执行原理
List arraylist = new ArrayList();
Iterator inte = arraylist.iterator();
while (inte