Day08_40_集合_List

List集合

  • List接口是继承Collection接口,所以Collection集合中有的方法,List集合也会继承过来,可以直接使用。

  • All Superinterfaces: Collection, Iterable

  • All Implementing Classes: AbstractList, ArrayList, LinkedList, Stack, Vector

  • ArrayList继承AbstractList底层是数组,默认初始化容量是10,每次扩容以后是原容量得1.5倍

  • Vector底层也是数组,初始化容量也是10,但每次扩容是原容量得2倍。

  • 如何优化ArrayList和Vector,尽量减少数组拷贝,因为数组拷贝很消耗内存。推荐在创建集合得时候就指定集合得初始化容量。 List list= new ArrayList(50);

  • 代码

```
  import java.util.ArrayList;
  import java.util.Iterator;
  import java.util.List;

   //ArrayList继承AbstractList底层是数组,默认初始化容量是10,每次扩容以后是原容量得1.5倍
   //Vector底层也是数组,初始化容量也是10,但每次扩容是原容量得2倍。
   //如何优化ArrayList和Vector,尽量减少数组拷贝,因为数组拷贝很消耗内存。推荐在创建集合得时候就指定集合得初始化容量。 List list= new ArrayList(50);
  public class ListTest01 {
      public static void main(String[] args) {

       // 创建一个list集合
          List list= new ArrayList(); //多态 父类引用指向子类对象

       //向list集合中添加元素
          
          list.add(1);//自动装箱
          list.add(100);
          list.add("张三");
          list.add("北京市通州区啦啦啦啦");
          list.add(3.1415926);

       // int indexOf(Object o)    返回list集合中第一次出现o对象的索引位置,如果list集合中没有o对象,那么就返回-1
          System.out.println(list.indexOf("张三")); //

       // set(int index, E element) 在索引为index位置的元素更改为element元素
          list.set(2,"李四");
          System.out.println(list.get(2));

      //因为ArrayList集合底层是数组,所以可以利用下表来插入数据。在下标为1得位置上添加555
          list.add(1,555);

      // 可以通过下标获取数据
          Object obj=list.get(1);
          System.out.println(obj);



       // 创建迭代器,遍历输出元素
          Iterator iterator=list.iterator();
          while(iterator.hasNext()){
              System.out.println(iterator.next());
          }
          System.out.println("===============================================================================");
      // List集合特有的遍历方式
          for(int i=0;i<list.size();i++){
              System.out.println(list.get(i));
          }
      }
  }
posted @ 2021-04-02 20:27  失昼  阅读(34)  评论(0)    收藏  举报