4.21JavaList容器

4.21JavaList容器

List容器特点

  • 有序:

    • List中每个元素都有索引标记,可以根据元素的索引标记(在List中的位置)访问元素,从而精确控制这些元素

    • 和数组一样有索引下标

    • List的底层实现就是数组

  • 可重复:

    • List允许加入重复的元素,List允许满足e1.equals(e2)的元素重复加入元素---对象地址相同或者是值相同

    • 因为List的底层是数组,所以添加重复的元素在List中的所有地址不一样,所以可以添加重复元素

List接口常用的实现类

ArrayList---底层实现是数组
LinkedList---底层使用的是链表
Vector---底层也是数组,但是是线程安全

实例:

public class TestList{
public static void main(String[] args){
test03;
}
   
       /*测试和索引相关的方法*/
   public static void test03(){

       /*定义一个自己的List,加泛型*/
       List<String> list = new ArrayList<>();
       list.add("A");
       list.add("B");
       list.add("C");
       list.add("D");
       /*
       在List源码中有两个add方法
       1.传参数和值---插入元素
       2.传索引和值---在指定索引处插入元素---链表
        */

       System.out.println(list);

       /*插入元素*/
       list.add(2,"Lucifer");
       System.out.println(list);
       /*
       特点:
       1.只插入元素,List后面的元素往后移
       2.相当于打断了链表然后重写连接,不删除任何元素
       用于数据库的增删改查的增
        */

       /*移除元素*/
       list.remove(2);
       System.out.println(list);
       /*
       插入的元素被移除出List
        */

       /*set方法*/
       list.set(2,"JunkingBoy");
       System.out.println(list);
       /*
       直接将传入的索引位置处的值改成后续传入的值
        */

       /*get方法*/
       System.out.println(list.get(2));
       /*
       直接返回List中2号索引位置处的值
        */
       
               list.add("C");
       list.add("B");
       list.add("A");
       System.out.println(list);

       System.out.println(list.indexOf("B")); //里面有两个B,返回的是第一个出现的B的索引下标
       /*
       如果字符不存在返回-1
        */

       System.out.println(list.lastIndexOf("B"));
       
  }
   
}

 

 

 

posted @ 2021-04-21 19:20  俊king  阅读(62)  评论(0)    收藏  举报