List的实现类 ArrayList,LinkedList集合

ArrayList集合

java.util.ArrayList 集合数据存储的结构是数组结构。元素增删慢,查找快,由于⽇常开发中
使⽤最多的功能为查询数据、遍历数据,所以 ArrayList 是最常⽤的集合。

常用方法

1.boolean add(Object obj) 将指定元素obj追加到集合的末尾
2.Object get(int index) 返回集合中指定位置上的元素
3.int size() 返回集合中的元素个数
4.boolean add(int index, Object obj) 将指定元素obj插入到集合中指定的位置
5.Object remove(int index) 从集合中删除指定index处的元素,返回该元素
6.void clear() 清空集合中所有元素
7.Object set(int index, Object obj) 用指定元素obj替代集合中指定位置上的元素
8.boolean isEmpty() 判断集合是否为空
9.boolean contain(Object obj) 判断集合是否存在该元素
代码实现

package arrayList;

import java.util.ArrayList;

public class ArrayListDemo {
    public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<>();
        //将指定元素obj追加到集合的末尾
        arrayList.add("1");
        arrayList.add("2");
        arrayList.add("3");
        arrayList.add("5");
        //返回集合中指定位置上的元素
        System.out.println(arrayList.get(1));
        //nt size() 返回集合中的元素个数
        System.out.println(arrayList.size());
        //boolean add(int index, Object obj) 将指定元素obj插入到集合中指定的位置
        arrayList.add(1, "4");
        //Object remove(int index) 从集合中删除指定index处的元素,返回该元素
        arrayList.remove(1);
        //Object set(int index, Object obj) 用指定元素obj替代集合中指定位置上的元素
        arrayList.set(1, "6");
        //boolean isEmpty() 判断集合是否为空
        System.out.println(arrayList.isEmpty());
        //boolean contain(Object obj) 判断集合是否存在该元素
        System.out.println(arrayList.contains("2"));
        //void clear() 清空集合中所有元素
        arrayList.clear();
    }
}

LinkedList集合

java.util.LinkedList 集合数据存储的结构是链表结构。⽅便元素添加、删除的集合。
LinkedList是⼀个双向链表: 找到头尾非常方便 里面有大量操作首位元素的方法
在这里插入图片描述

常用方法

public void addFirst(E e) :将指定元素插⼊此列表的开头。
public void addLast(E e) :将指定元素添加到此列表的结尾。
public E getFirst() :返回此列表的第⼀个元素。
public E getLast() :返回此列表的最后⼀个元素。
public E removeFirst() :移除并返回此列表的第⼀个元素。
public E removeLast() :移除并返回此列表的最后⼀个元素。
public E pop() :从此列表所表示的堆栈处弹出⼀个元素。
public void push(E e) :将元素推⼊此列表所表示的堆栈。
public boolean isEmpty() :如果列表不包含元素,则返回true。

public class LinkedListDemo {
 public static void main(String[] args) {
 LinkedList<String> link = new LinkedList<String>();
 // 添加元素
 link.addFirst("abc1");
 link.addFirst("abc2");
 link.addFirst("abc3");
 System.out.println(link);
 // 获取元素
 System.out.println(link.getFirst());
 System.out.println(link.getLast());
 // 删除元素
 System.out.println(link.removeFirst());
 System.out.println(link.removeLast());
 while (!link.isEmpty()) { // 判断集合是否为空
 System.out.println(link.pop()); // 弹出集合中的栈顶元素
 }
 System.out.println(link);
 }
}

ArrayList集合和LinkedList集合区别

底层实现的区别
ArrayList:数组
LinkedList:链表
物理空间:
ArrayList:连续的物理空间
LinkedList:物理空间不连续
1.对于插入/删除 单个操作而言 ——>LinkedList 比较快
2.但是:先查询,找到要插入/删除的位置的前一个节点查询+插入(删除)因为LinkedList没有下标,
所以查询非常慢所以对整个操作而言 ArrayList 比较快

ArrayList和vector的区别

1.线程安全分析
vector加了锁(synchronized),线程安全,效率低
2.扩容容量
ArrayList 扩容为原来容量的1.5倍
vector 扩容为原来容量的2倍

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值