Appearance
List 集合
1.1 概述
有序集合(也称为序列 )。该界面的用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引(列表中的位置)访问元素,并搜索列表中的元素。
与set集合不同,列表通常允许重复的元素。 更正式地,列表通常允许元素
e1
和e2成对
使得e1.equals(e2)
,并且如果它们允许空元素,它们通常允许多个空元素。 有人可能希望实现一个禁止重复的列表,当用户尝试插入时会抛出运行时异常,但是我们预计这种使用是罕见的。
1.2 创建集合对象
java
public static void main(String[] args) {
//创建集合对象
List<String> list = new ArrayList<String>();
//添加元素
list.add("Hello");
list.add("World");
list.add("Java");
//遍历集合,迭代器
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String s = it.next();
System.out.println(s); //输出结果 Hello World Java
}
}
2. List 集合的方法
方法名 | 说明 |
---|---|
void add ( int index , E element) | 在此集合中的指定位置插入指定的元素 |
E remove ( int index) | 删除指定索引处的元素,返回被删除的元素 |
E set ( int index , E element) | 修改指定索引处的元素,返回被修改的元素 |
E get ( int index) | 返回指定索引处的元素 |
2.1 List 集合方法的使用
java
public static void main(String[] args) {
//创建集合对象
List<String> list = new ArrayList<String>();
//添加元素
list.add("Hello");
list.add("World");
list.add("Java");
//| void add ( int index , E element) | 在此集合中的指定位置插入指定的元素 |
//list.add(1,"Javaee"); //输出结果:[Hello, Javaee, World, Java]
// list.add(10,"Javaee"); //输出结果:IndexOutOfBoundsException
//| E remove ( int index) | 删除指定索引处的元素,返回被删除的元素 |
//list.remove(1); //输出结果:[Hello, Java]
//list.remove(10); //输出结果:IndexOutOfBoundsException
//| E set ( int index , E element) | 修改指定索引处的元素,返回被修改的元素 |
//list.set(1,"Javase"); //输出结果:[Hello, Javase, Java]
//list.set(10,"Javase"); //输出结果:IndexOutOfBoundsException
//| E get ( int index) | 返回指定索引处的元素 |
//String s = list.get(1);
//System.out.println(s); //输出结果:World
//String s1 = list.get(10);
//System.out.println(s1); //输出结果:IndexOutOfBoundsException:
//输出集合
//System.out.println(list);
//遍历集合
/*
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String next = it.next();
System.out.println(next);
}
*/
//遍历集合
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
System.out.println(s);
}
}
3. List 集合学生案例
3.1 学生类
java
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
3.2 学生测试类
java
public class StudentDemo {
public static void main(String[] args) {
//创建学生类集合对象
List<Student> list = new ArrayList<Student>();
Student s1 = new Student("张嘉圣杰", 22);
Student s2 = new Student("张飘飘", 21);
Student s3 = new Student();
s3.setName("佳洁");
s3.setAge(20);
//把信息添加到集合中
list.add(s1);
list.add(s2);
list.add(s3);
//遍历集合
Iterator<Student> it = list.iterator();
while (it.hasNext()) {
Student next = it.next();
System.out.println(next.getName() + "," + next.getAge());
} // 输出结果:张嘉圣杰,22 张飘飘,21 佳洁,20
//遍历集合
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
System.out.println(s.getName() + "," + s.getAge());
} // 输出结果:张嘉圣杰,22 张飘飘,21 佳洁,20
}
}