数组:基本,引用
Collection:
子接口:
List
ArrayList,LinkedList
Set
HashSet,TreeSet
Map
HashMap,TreeMap
三种集合存储对象的特点:如果想用子类特有的,就用子接口实例化
List:有序可重复
Set:不可重复
Map:存储键值对,键不能重复
ArrayList:
Collection c=new ArratList();
List list=new ArrayList();
add(E e):添加元素和返回boolean类型。
//输出数组
Object o={....};
syso(Arrays.toString(o));
List:
get(index),返回集合中指定位置的元素
indexOf,返回对象第一次出现的索引,不存在返回-1
remove(index),移除指定位置的元素,返回值是移除的对象
set(index,Object),替换指定位置的对象,返回值为被替换的对象
subList(from,to),集合的截取,[from,to)
遍历List集合
增强for循环,因为集合中有各种类型的数据,所以只能用Object
for(Object obj:l1)
泛型:规定集合中存储对象的类型
迭代器使用方法:
ArrayList a1 = new ArrayList();
Iterator it = a1.iterator();
//a1.iterator() 获取ArrayList中的迭代器,返回Iterator类
错误方法:
list.iterator().next()//每次使用都调用一个新的迭代器,不可用,从头开始迭代
注意:一个迭代器遍历只能有一次。指针指到末尾就不会回来了
迭代器的remove方法,最好用操作集合的方法去删除
Iterator it2=a1.iterator();
while(it2.hasNext()){
it2.next();
it2.remove();//next方法之后调用remove方法。删除next获得的对象
}
ArrayList,底层由数组实现,存储对象
优点:集合中的对象都有索引值,并且存储是连续的,变量是效率较高
缺点:集合在进行插入或删除操作时,效率较低,需要做大量的交换
LinkedList,底层是双向链表实现
优点:集合在进行插入或删除操作时效率较高,只需要改变前驱后继即可
栈桥:stack,后进先出,(Last In First Out,LIfo)
队列,queue,先进先出,(First In First Out)
附:
java.util
类 AbstractList<E>
方法摘要
boolean add(E e)
将指定的元素添加到此列表的尾部(可选操作)。
void add(int index, E element)
在列表的指定位置插入指定元素(可选操作)。
boolean addAll(int index, Collection<? extends E> c)
将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)。
void clear()
从此列表中移除所有元素(可选操作)。
boolean equals(Object o)
将指定的对象与此列表进行相等性比较。
abstract E get(int index)
返回列表中指定位置的元素。
int hashCode()
返回此列表的哈希码值。
int indexOf(Object o)
返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1
Iterator<E> iterator()
返回以恰当顺序在此列表的元素上进行迭代的迭代器。
int lastIndexOf(Object o)
返回此列表中最后出现的指定元素的索引;如果列表不包含此元素,则返回 -1。
ListIterator<E> listIterator()
返回此列表元素的列表迭代器(按适当顺序)。
ListIterator<E> listIterator(int index)
返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。
E remove(int index)
移除列表中指定位置的元素(可选操作)。
protected void removeRange(int fromIndex, int toIndex)
从此列表中移除索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。
E set(int index, E element)
用指定元素替换列表中指定位置的元素(可选操作)。
List<E> subList(int fromIndex, int toIndex)
返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。
java.util
接口 Iterator<E>
//此次用的很多,要多多练习迭代器的使用
boolean hasNext()
如果仍有元素可以迭代,则返回 true。
E next()
返回迭代的下一个元素。
void remove()
从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
本文深入介绍了Java集合框架的基础概念及核心组件,包括List、Set、Map等接口的不同实现方式及其特性。对比了ArrayList与LinkedList在不同操作场景下的优劣,并探讨了栈桥与队列的基本原理。
968

被折叠的 条评论
为什么被折叠?



