List容器

List容器是元素有序、且可重复的,容器中的每个元素都有其对应的顺序索引。

List允许使用重复元素,默认按照元素的添加顺序来设置元素的索引。

 

ArrayList和Vector是List接口的两个典型的实现,区别于下:

  • Vector(有些古老)是线程安全的,ArrayList是线程不安全的。
  • 即使为了保证List集合线程安全,也不推荐使用Vector
import java.util.List;
import java.util.*;

//List是一个接口,ArrayList类实现了List接口
public class Test2 {
    public static void main(String[] args) {
        //接口能接受其实现类创建的对象
        List<String> list = new ArrayList<String>();    
        list.add("Hello");
        list.add("World");
        list.add("Xi'an");
        list.add("Jiaotong");
        list.add("University");
        list.add("Hello");    //List容器允许重复
        
        //指定索引下标插入数值
        list.add(2,"Xia Zhenbin");
        
        //通过索引的位置来访问制定的集合元素
        System.out.println(list.get(0));
        
        System.out.println(list);
        
        List<String> l = new ArrayList<>();
        l.add("Smart");
        
        list.addAll(2, l);    //    在指定元素索引位置插入集合
        System.out.println(list);
        
        list.add("Hello");
        System.out.println(list);
        //获取指定元素在集合中第一次出现的下表
        System.out.println(list.indexOf("Xi'an"));
        //获取指定元素在集合中最后一次出现的下表
        System.out.println(list.lastIndexOf("Hello"));
        
        list.remove(2);    //根据指定的索引下标移除元素
        System.out.println(list);
        
        list.set(2, "Li Ying");    //修改指定索引的元素
        System.out.println(list);
        
        List<String> substr = list.subList(2, 5); //截取元素形成新的结合,结果是左闭右开
        System.out.println(substr);
        
        System.out.println(list.size());
        
        //ArrayList是线程不安全的,Vector是线程安全的
    }
}

 

posted @ 2020-09-23 20:57  Peterxiazhen  阅读(148)  评论(0编辑  收藏  举报