List集合概述
- 有序集合(也称为序列),用户可以精确控制列表中每一个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素
- 与Set集合不同,列表通常允许重复的元素
List集合的特点
- 有序:存储和取出的元素顺序一致
- 可重复:存储的元素可以重复
List 集合特有方法
方法名 | 说明 |
---|---|
void add(int index,E element) | 在此集合中的指定位置插入指定元素 |
E remove(int index) | 删除指定索引处的元素,返回被删除的元素 |
E set(int index,E element) | 修改指定索引处的元素,返回被修改的元素 |
E get(int index) | 返回指定索引处的元素 |
测试
import java.util.List;
import java.util.ArrayList;
public class Demo {
public static void main(String[] args) {
//创建集合对象
List<String> list = new ArrayList<String>();
//存储元素
list.add("hello");
list.add("world");
list.add("1314");
System.out.println(list);//原列表元素
System.out.println("------------");
//add
list.add(1,"test");//在索引1处插入test
//list.add(11,"test");//越界报错
System.out.println(list);//修改后的列表
System.out.println("------------");
//remove
System.out.println(list.remove(1));//删除索引1处的test,并返回对应的值
//list.remove(11);//越界报错
System.out.println(list);
System.out.println("------------");
//set
System.out.println(list.set(0,"haha"));//将索引0处的元素修改为haha,并返回原来的值
System.out.println(list);
System.out.println("------------");
//get
System.out.println(list.get(2));//返回1314
}
}
输出:
[hello, world, 1314]
------------
[hello, test, world, 1314]
------------
test
[hello, world, 1314]
------------
hello
[haha, world, 1314]
------------
1314
例:List集合存储学生对象并遍历
需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
创建学生类:
public class Student {
private String name;
private int age;
public Student(){}
public Student(String name,int age){
this.name = name;
this.age = age;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
}
Demo:
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
public class Demo {
public static void main(String[] args) {
//创建列表
List<Student> list = new ArrayList<Student>();
//创建学生对象
Student s1 = new Student("张三",18);
Student s2 = new Student("李四",19);
Student s3 = new Student("王五",20);
//添加到列表
list.add(s1);
list.add(s2);
list.add(s3);
//遍历集合
//方法一:迭代器
Iterator<Student> it = list.iterator();
while(it.hasNext()){
Student s = it.next();
System.out.println(s.getName()+","+s.getAge());
}
System.out.println("--------------");
//方法二:for循环
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
System.out.println(s.getName()+","+s.getAge());
}
}
}
输出:
张三,18
李四,19
王五,20
--------------
张三,18
李四,19
王五,20