List集合
有序可重复,可以精确地控制列表中的每一个元素插入的位置,可以通过索引访问元素。
List和Set都是Collection的接口子类。
List常用的方法:
add(index,element),在指定位置插入元素,其它元素都要后移一位,插入元素后面的所有元素下标都要+1,无返回值
remove(index),删除索引位置的元素,返回值为这个元素
set(index,element),修改指定索引的元素,返回值为被修改的元素
get(index),返回指定索引的元素
size(),返回集合的长度
public class ListDome1{
public static void main(String[] args){
// 实例化ArrayList
List<String> l = new ArrayList<>();
l.add("hello");
l.add("world");
l.add("king");
l.add("king");
System.out.println(l); // [hello, world, king, king]
System.out.println(l.size()); // 4
// 通过指定下标插入元素
l.add(0,"ok");
System.out.println(l); // [ok, hello, world, king, king]
// .remove() 移除指定下标的元素并返回这个元素
System.out.println(l.remove(0)); // ok
// .get() 获取指定下标的元素
System.out.println(l.get(0)); // hello
// .set() 修改指定下标的内容
System.out.println(l.set(0,"good"));
System.out.println(l); // [good, world, king, king]
}
}
遍历
List 有两种遍历方式 :
1、使用Collection的迭代器遍历
2、也可以使用索引来进行循环遍历
// 迭代器遍历
public class ListDemo2{
public static void main(String[] args){
List<String> l = new ArrayList<>();
l.add("hello");
l.add("world");
l.add("king");
Iterator<String> it = l.iterator();
while(it.hasNext()){
String s = it.next();
System.out.println(s);
}
}
}
// for循环遍历
public class ListDemo3{
public static void main(String[] args){
List<String> l = new ArrayList<>();
l.add("hello");
l.add("world");
l.add("king");
for (int i = 0; i< l.size();i++){
System.out.println(l.get(i));
}
}
}
案例:list集合存储学生对象并遍历
// 先写一个Student类
public class Student {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
public Student(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
}
再写测试类Test
public class Test{
public static void main(String[] args) {
List<Student> ls = new ArrayList<Student>();
Student s1 = new Student(1, "lyear", 22);
Student s2 = new Student(2, "tom", 21);
Student s3 = new Student(3, "shen", 21);
ls.add(s1);
ls.add(s2);
ls.add(s3);
Iterator<Student> it = ls.iterator();
while (it.hasNext()) {
Student ss = it.next();
System.out.println(ss.getName() + "=" + ss.getAge());
}
for (int i = 0; i < ls.size(); i++) {
Student s = ls.get(i);
System.out.println(s.getName() + "-" + s.getAge());
}
}
}