Arrays操作数组,Collections操作集合如图:
toArray把集合转换为数组
set无序且不支持重复数据支持空值
List有序支持重复数据
ArrayList,Vector与LinkedList的区别:
ArrayList,Vector 底层是由数组实现,LinkedList 底层是由双线链表实现,从底层的实现可以得出它们的性能问题,ArrayList,Vector,LinkedList都可以存储重复元素 ArrayList,Vector 插入速度相对较慢,查询速度相对较快,而LinkedList 插入速度较快,而查询速度较慢。再者由于 Vevtor 使用了线程安全锁,所以ArrayList 的运行效率高于 Vector。
isEmpty判断是否为空
indexof得到所存数据下标,重复数据拿到第一个即停
addAll是将所选元素存储一遍,add添加什么数据都是当一个数据添加,即是一个集合也只占一位
remove移除所选下标的元素,removeAll移除所选内容集合也是
LinkedList动态添加删除高于ArrayLsist查询则反之
Map
通过k/v结构存储和查询
k是唯一的有重复则覆盖v也跟着替换,v里面内容可重复
泛型< >用于规定存储数据类型
例题
创建一个list,在list中增加三个工人,基本信息如下:
姓名 年龄 工资
zhang3 18 3000
li4 25 3500
wang5 22 3200
在li4之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300
删除wang5的信息
package Test3;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class WokerList {
public static void main(String[] args) {
List wk=new ArrayList();
//添加数据
wk.add("zhang3"+"\t"+18+"\t"+3000);
wk.add("li4"+"\t"+28+"\t"+3500);
wk.add("wang5"+"\t"+20+"\t"+5555);
//添加到下标为1的位置
wk.add(1,"zhao6"+"\t"+18+"\t"+3000);
//移除下标为3的数据
wk.remove(3);
Iterator it =wk.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
}
}