案例:
定义一个类:
package JiHe.List;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
/*
java.util.list接口 extends Collection接口
List接口的特点:
1. 有序的集合,存储元素和取出元素的顺序是一致的(存储123 取出123)
2. 有索引,包含了一些带索引的方法
3. 允许储存重复的元素
List接口中带索引的方法【特有】
public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上
public E get(int index): 返回集合中指定位置的元素
public E remove(int index): 移除列表中指定位置的元素,返回的是被移除的元素
public E set(int index, E element): 用指定元素替换集合中指定位置的元素,返回值是更新前的元素
注意:
操作索引的时候,一定要防止索引越界异常
IndexOutOfBoundsException:索引越界异常,集合会报错
ArrayIndexOutOfBoundsException:数组索引异常
StringIndexOutOfBoundsException:字符串索引越界异常
*/
public class Demo01List {
public static void main(String[] args) {
//创建一个List集合对象,多态
List<String> list = new ArrayList<>();
//使用add方法往集合中添加元素
list.add("AAA");
list.add("BBB");
list.add("CCC");
list.add("DDD");
//打印集合
System.out.println(list); // [AAA, BBB, CCC, DDD] 不是地址重写了toString方法
//在BBB和CCC之间添加一个学生
list.add(2,"学生"); // 索引 起始位是0,所有在CCC对应的位置就是 2
System.out.println(list); // [AAA, BBB, 学生, CCC, DDD]
//public E remove(int index): 移除列表中指定位置的元素,返回的是被移除的元素
String remove = list.remove(3);
System.out.println("被移除的元素是:" + remove);
System.out.println(list);
//public E set(int index, E element): 用指定元素替换集合中指定位置的元素,返回值是更新前的元素
//把最后的DDD,替换为:放学
String setE = list.set(3, "放学");
System.out.println("替换的元素是:" + setE);
System.out.println(list);
// //public E get(int index): 返回集合中指定位置的元素
// String s = list.get(5);
// System.out.println(s);
//List集合遍历有3种方式
//使用普通的for循环
System.out.print("普通的for循环:");
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
System.out.print(s + " ");
}
System.out.println(""); // 换行
System.out.println("=============================================");
//迭代器遍历
System.out.print("迭代器遍历:");
Iterator<String> it = list.iterator();
while (it.hasNext()){
String s = it.next();
System.out.print(s + " ");
}
System.out.println(""); // 换行
System.out.println("=============================================");
//增强for循环遍历
System.out.print("增强for循环遍历:");
for (String s : list) {
System.out.print(s + " ");
}
}
}
运行结果:
[AAA, BBB, CCC, DDD]
[AAA, BBB, 学生, CCC, DDD]
被移除的元素是:CCC
[AAA, BBB, 学生, DDD]
替换的元素是:DDD
[AAA, BBB, 学生, 放学]
普通的for循环:AAA BBB 学生 放学
=============================================
迭代器遍历:AAA BBB 学生 放学
=============================================
增强for循环遍历:AAA BBB 学生 放学