常用类库
1. ArrayList
add()方法将元素按照顺序添加到数组中
contains()方法检查数组中是否包含你要检查的元素,是就return true。indexof()方法检索数组中第一次出现你要查询的元素的下标,若无就返回-1,lastindexof()当然返回的就是最后一次出现的下标。
get(int index)方法返回你查询位置的元素。
remove()是去掉你想去掉位置上的元素
set(x,n)用n去替换掉x位置上的元素
ArrayList <Integer>arr=new ArrayList<>(15);
arr.add(100);
arr.add(200);
System.out.println(arr);
System.out.println(arr.contains(15));
System.out.println(arr.indexOf(100));
System.out.println(arr.indexOf(1));
System.out.println(arr.get(1));
arr.remove(0);
System.out.println(arr);
arr.set(0,2000);
System.out.println(arr);
结果如下
[100, 200]
false
0
-1
200
[200]
[2000]
由于Arraylist底层依靠数组,优缺点方面和数组类似,Arraylist会自动扩容,每次的容量是前一次的150%,若没给初始容量,默认为10;最大容量是int类型的最大值-8。
2. Vector
Vector和Arraylist类似,不过vector内存不足的时候直接翻倍,不利于节省空间。vector多线程安全,不考虑多线程的话用Arraylist比较好。
3. Linkedlist
Linkedlist:本身是双向链表结构,增删慢,读取快。Linkedlist你可以按照单向链表设计,
有getfirst()返回首位,removefirst()(返回并删除首位),addfirst(添加在首位),pollfirst()(检索并删除首位,若列表为空则返回null)等等方法
也可按照双向链表设计,有getlast(),removelast(),addlast(),polllast等等方法
还可以用堆栈的思想:push()压栈,pop()弹栈。
4. Iterator和listIterator
Iterator用于迭代collection下的集合,listIterator只能用于迭代list
Iterator指针初始位置不是0,要先next()才行,当然如果没有数据会报错。
Iterator<Integer> iterator=arr.iterator();
while(iterator.hasNext()){
Integer i= iterator.next();
System.out.println(i);
}
5.Map
键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。其中,键对象不允许重复,而值对象可以重复。我们最常使用hashmap,基于hashcode的无序存储。我理解这种存储方式就是保险柜式存储,就是你要先找到保险柜对应的钥匙然后你才能看到保险柜里的内容。
利用put(key,value)添加元素,get(key)查找对应的映射,remove(key)去掉键对应的映射,其他还有别的方法可以看一下api。