list集合是我们collection集合的一个子集合;元素有先后放入顺序且可重复,主要实现类有
ArraryList,LinkList,Static,Vector
ArraryList底层是数组,访问元素方便,增删不便;
LinkList底层链表管理,访问不便,增删方便;
Strack底层数组管理,具有先进先出的特性,为栈;
Vectory底层数组管理,与ArraryList比属于线程安全类
List常用方法:
增加的方法: void add (int index,E str) –将str加入到index位置
删除:E remove(int index) —删除指定位置元素;E
代表被删除的对象的类型,以此做返回值
修改:E set (int index ,E ele) –像index位置插入ele的str
查找:int indexOf() –查元素
E get (int index) –获取index位置的元素,返回类型时获取到的类型;
List集合的增,删,改代码:
import java.util.LinkedList;
import java.util.List;
public class ListTest {
public static void main(String[] args) {
// 1.声明List类型的引用指向实现类的对象
List lt1 = new LinkedList();
System.out.println("lt1 = " + lt1); // [啥也没有]
// 2.向集合中添加元素并打印
// 向下标为0的位置插入元素one 向开头位置插入元素
lt1.add(0, "one");
System.out.println("lt1 = " + lt1); // [one]
// 向下标为1的位置插入元素3 向末尾位置插入元素
lt1.add(1, 3);
System.out.println("lt1 = " + lt1); // [one, 3]
// 向下标为1的位置插入元素"two",向中间位置插入元素
lt1.add(1, "two");
System.out.println("lt1 = " + lt1); // [one, two, 3]
System.out.println("--------------------------------------");
// 3.实现集合中元素的查找
// 集合中之所以可以放入不同类型的对象,是因为这些对象都被看做Object
// 类型放入的,那么取出来的元素类型也是Object类型
String str1 = (String) lt1.get(0);
System.out.println("获取到的元素是:" + str1); // one
Integer it1 = (Integer) lt1.get(2);
System.out.println("获取到的元素是:" + it1); // 3
System.out.println("--------------------------------------");
// 练习:使用get方法获取元素并拼接成toString方法的效果
StringBuilder sb2 = new StringBuilder();
sb2.append("[");
for(int i = 0; i < lt1.size(); i++) {
if(lt1.size()-1 == i) {
sb2.append(lt1.get(i)).append("]");
} else {
// 将第一个字符串中的每个字符取出放入第二个字符串并跟随逗号
sb2.append(lt1.get(i)).append(",").append(" ");
}
}
System.out.println("lt1 = " + sb2);
System.out.println("--------------------------------------");
// 4.实现集合中元素的修改功能
// [one, two, 3]
Integer it2 = (Integer) lt1.set(2, "three");
System.out.println("下标为2的旧元素是:" + it2); // 3
System.out.println("lt1 = " + lt1); // [one, two, three]
System.out.println("--------------------------------------");
// 5.实现集合中元素的删除功能
String str2 = (String) lt1.remove(1);
System.out.println("被删除的元素是:" + str2); // two
System.out.println("删除后集合中的元素有:" + lt1); // [one, three]
System.out.println("--------------------------------------");
// 练习:使用remove方法删除集合中的所有元素
//for (int i = 0; i < lt1.size(); /* i++ */) {
/*
for (int i = lt1.size()-1; i >= 0; i--) {
System.out.println("被删除的元素是:" + lt1.remove(i));
}
System.out.println("集合中最终的元素有:" + lt1);
*/
System.out.println("--------------------------------------");
// 6.获取List集合中的一部分内容,从下标0开始一直到下标1,但取不到1
List lt2 = lt1.subList(0, 1);
System.out.println("lt2 = " + lt2); // [one]
lt2.set(0, 2);
System.out.println("lt2 = " + lt2); // [2]
System.out.println("lt1 = " + lt1); // [2, three]
}
}