List容器

List容器List 容器 ArrayList 使用 Object 数组存储对象 定义一个只能存放 String 的 ArrayList 此时没有传参数 strings 的容量为 0 ArrayList lt String gt strings new ArrayList lt gt

大家好,我是讯享网,很高兴认识大家。

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 关键字修饰,是线程安全的,但是会影响操作效率。
小讯
上一篇 2025-02-06 08:17
下一篇 2025-01-15 18:21

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/60641.html