Java---List集合

本文介绍了Java中的List集合,包括ArrayList、LinkedList和Vector三个子类的特性和使用方法。ArrayList基于数组,查询快,增删慢;LinkedList采用链表结构,增删快,查询慢;Vector线程安全,但效率较低。文章详细讲解了它们的遍历、添加、删除和修改元素等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

List集合,元素有序,并且每个元素都存在一个索引,元素可以重复

List集合特有的方法:

public void add(int index, Object element) 

向集合指定索引index处,添加指定的元素element,原有元素依次后移

public Object remove(int index) 

将指定索引index处的元素,从集合删除,返回值为被删除的元素

public Object set(int index, Object element)

将指定索引index处的元素,替换成指定的元素,返回值为替换前的元素

public Object get(int index) 

返回列表中指定索引处的元素。

public ListIterator listIterator() 

列表迭代器(List集合特有的迭代器)

List有三个子类,分别为:ArrayList,LinkedList,vector

1.ArrayList

ArrayList: 底层数据结构是数组,查询快,增删慢。线程不安全,效率高。

ArrayList存储自定义对象并遍历

public class 遍历Demo {
public static void main(String[] args) {
    Student s1 = new Student("张", 18);
    Student s2 = new Student("李", 19);
    Student s3 = new Student("田", 20);
    Student s4 = new Student("赵", 21);
    Student s5 = new Student("孙", 22);

    ArrayList list=new ArrayList();
    list.add(s1);
    list.add(s2);
    list.add(s3);
    list.add(s4);
    list.add(s5);

遍历方式1

    Iterator a = list.iterator();
    while (a.hasNext()){
        Object obj1 = a.next();
        Student stu1=(Student)obj1;
        System.out.println(stu1.getName()+"--"+stu1.getAge());
    }

遍历方式2

    ListIterator b = list.listIterator();
    while (b.hasNext()){
        Object obj2 = b.next();
        Student stu2 = (Student)obj2;
        System.out.println(stu2.getName()+"--"+stu2.getAge());
    }

遍历方式3

    for (int i = 0; i < list.size(); i++) {
        Object obj3 = list.get(i);
        Student stu3 = (Student)obj3;
        System.out.println(stu3.getName()+"--"+stu3.getAge());
      }
   }
}		

2.LinkedList

LinkedList: 底层数据结构是链表,查询慢,增删快。

public class Demo {
public static void main(String[] args) {
  LinkedList link = new LinkedList();
  link.add(10);
  link.add(20);
  link.add(30);
  link.add(40);
  link.add(50);
  link.add(60);

遍历

  for (int i = 0; i < link.size(); i++) {
       Object obj1 = link.get(i);
     System.out.println(obj1);
    }

向LinkedList集合末尾添加元素

    link.addLast(5);
    link.addLast(6);
    link.addLast(7);

获取LinkedList集合首尾元素

    Object a = link.getFirst();
    Object b = link.getLast();
    System.out.println(a);
    System.out.println(b);

移除LinkedList集合首尾元素

    Object x = link.removeFirst();
    Object y = link.removeLast();
    System.out.println(x);
    System.out.println(y);
    System.out.println(link);
   }
}

3.vector

Vector: 底层数据结构是数组,查询快,增删慢。线程安全,效率低。

public class Demo {
public static void main(String[] args) {
    Vector v1 = new Vector();
    v1.add(10);
    v1.add(20);
    v1.add(30);
    v1.add(40);
    v1.add(50);
    v1.addElement(60);

在指定索引处插入元素

    v1.insertElementAt(10000,3);

根据索引替换元素,返回被替换过的旧元素

    Object obj1 = v1.set(4,20000);
    System.out.println(obj1);
    System.out.println(v1);

Vector 中特有的迭代方式

    Enumeration e1 = v1.elements();
    while (e1.hasMoreElements()){
        Object obj2 = e1.nextElement();
        System.out.println(obj2);
    }
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值