ArrayList ,List,LinkedList,Iterator,Collection等(java学习3.1)
数组使用场景
- ArrayList:快速访问随机元素。
- list:涉及到堆,栈,链表,队列。
- linkedlist:快速插入或者删除元素。
List
- List是一个接口,继承于Collection.
- List是一种有序集合,可以根据索引进行增删查改操作。
- List与Set不同的是,Set不允许有重复元素出现,且Set无序,List可以重复元素且有序。
ArrayList
- ArrayList是一个可变大小的数组,里面允许所有元素(包括null)。
- 每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加
Linkedlist
- LinkedList 是一个双向链表。它也可以被当作堆栈、队列或双端队列进行操作。
- LinkedList实现了List接口,允许null元素。
- LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部。
Iterator接口
迭代器,遍历集合~~~
Iterator的方法
- public boolean hasNext():判断是否还有下一个元素。
- public Object next():取得下一个元素。在使用该方法之前,必须先使用hasNext()方法判断。
- public void remove():删除当前元素。
Collection接口
该接口是Set和List的父接口
Collection的一些方法
- public boolean add(Object?o):往集合中添加新元素
- public Iterator iterator():返回Iterator对象,遍历集合中的所有元素。
- public boolean contains(Object?o):判断集合中是否包含指定的元素。
- public int size():取得集合中元素的个数。
- public void clear():删除集合中的所有元素。
排序
- Collections.sort(List list):对List的元素进行自然排序 <暂时>
Map
- Map是一种把键对象和值对象进行映射的集合,它的每一个元素都包含一对键对象和值对象。
- 向Map添加元素时,必须提供键对象和值对象。
- 从Map中检索元素时,只要给出键对象,就可以返回对应的值对象。
- 键对象不能重复,但值对象可以重复。
- HashMap,HashMap按照哈希算法来存取键对象,有很好的存取性能。