List容器

List 容器

ArrayList

使用Object[] 数组存储对象

//定义一个只能存放String的ArrayList,此时没有传参数,strings的容量为 0 
ArrayList<String> strings = new ArrayList<>(); 

//添加对象之前会保证容器的容量足够大,如果不够就会进行扩容操作(如果构造器未传参数,默认扩容为容量10,否则新容量 新容量 = 老容量 + (老容量>>1),默认最大容量是 Integer.MaxValue-8,但是还可以再多8,达到MaxValue)    
strings.add("a");

//删除对应下标的元素, 从删除下标开始到数据结尾 整体向前复制
strings.remove(1);

//自定义排序,匿名内部类 实现Comparator接口
 strings.sort(new Comparator<String>() {
     @Override
     public int compare(String o1, String o2) {
         return o1.compareTo(o2);//如果o1 的字典序 小于 o2 的字典序 则返回-1 (o1.string - o2.string)
     }
 });


//遍历方式 1.
for(String string:strings){
    System.out.println(string);
}
//遍历方式 2.
for (int i = 0 ;i<strings.size();i++){
    System.out.println(strings.get(i));
}
//遍历方式 3.
for (Iterator<String> iterator = strings.iterator(); iterator.hasNext();){
    System.out.println(iterator.next());
}

LinkedList

使用内部类Node 存储对象

LinkedList<String> strings = new LinkedList<>(); //存储Node节点,双向链表 有节点 first 和 last

strings.add("a1");//尾插法

strings.addFirst("a0"); //头插法

strings.remove(0); //删除一个节点 (从头或尾 接近的一端开始找节点)

//自定义排序
//List接口的默认方法,转换成Object[]数组,排序后通过 "list迭代器赋值" 
strings.sort(new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {
       return o1.compareTo(o2);
    }
});

vector

vector 容器与 ArrayList 类似,内部使用Object[ ] 存储数据

不同的是

  • ArrayList每次扩容 new = old + (old>>1),Vector 扩容 new = old + incr==0? old : incr (incr 是实例化时的增长容量)

在这里插入图片描述

  • Vector 内部某些增删改方法使用 synchronized 关键字修饰,是线程安全的,但是会影响操作效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值