List接口和常用方法

简介

list接口是Collection接口的子接口

  1. List集合类中元素是有序的(即添加顺序和取出顺序一致)、且可重复
  2. List集合中的每个元素都有其对应的顺序索引,即仅支持索引
  3. List容器中的元素都对应一个整数的序号记录在容器中的位置,可以根据序号存取元素
  4. JDK API中的List接口实现类有AbstractList , AbstractSequentialList , ArrayList , AttributeList , CopyOnWriteArrayList , LinkedList , RoleList , RoleUnresolvedList , Stack , Vector 
public class List_ {
   @SuppressWarnings({"all"})
   public static void main(String[] args) {
      List list = new ArrayList();
      list.add("rick");
      list.add("jack");
      list.add("gelnn");
      list.add("mike");
      list.add("mary");
      System.out.println(list);  //1.List集合类中元素有序存取顺序一致,且可以元素重复
      list.add("rick");
      System.out.println(list);
      //2.List集合中的每个元素都有其对应的顺序索引(仅支持索引)
      System.out.println(list.get(0));
   }
}

常用方法

常用方法示例
 public class ListMethod {
   public static void main(String[] args) {
      List list = new ArrayList();
      list.add("张三");
      list.add("李四");
      list.add(1,"王五");
      System.out.println(list);
      List list1=new ArrayList();
      list1.add("jack");
      list1.add("rick");
      list1.addAll(1,list);
      System.out.println(list1);
      // 返回obj在集合中首次出现的位置
      System.out.println(list1.indexOf("李四"));
      list1.add(4,"李四");
      // 返回obj在集合中最后一次出现的位置
      System.out.println(list1.lastIndexOf("李四"));
      list.remove(0);   // 删除索引为0的元素
      System.out.println(list);
      list.set(0,"张三"); // 替换指定索引的元素
      System.out.println(list);
      List list2 = list1.subList(1,5); //返回的子集合是[1,5)范围内的元素
      System.out.println(list2);
   }
}

List的三种遍历方式

List array = new ArrayList();
      for (int i=0;i<12;i++){
         array.add("hello"+i);
      }
      // 使用Iterator
      System.out.println("使用迭代器");
      Iterator it=array.iterator();
      while (it.hasNext()) {
         Object next =  it.next();
         System.out.println(next);
      }
      //2.使用增强for
      System.out.println("使用增强for");
      for (Object o :array) {
         System.out.println(o);
      }
      //3.使用普通for
      System.out.println("使用普通for");
      for (int i = 0; i < array.size(); i++) {
         Object obj=array.get(i);
         System.out.println(obj);
排序练习
public class BookMenu {
    public static void main(String[] args) {
        List arrayList = new ArrayList();
        arrayList.add(new Book("资本论", "卡尔·马克思", 9.9));
        arrayList.add(new Book("毛选", "人民出版社", 11));
        arrayList.add(new Book("马克思主义基本原理概论", "高等教育出版社", 10));

        // 遍历
        for (Object o :arrayList) {
            System.out.println(o);
        }
        //
        sort(arrayList);
        System.out.println("按价格排序后");
        for (Object o :arrayList) {
            System.out.println(o);
        }
    }
    //对集合进行排序
    public static void sort(List list){
        for (int i = 0; i < list.size()-1; i++) {
            for (int j = 0; j < list.size() - 1 - i; j++) {
                Book book1= (Book) list.get(j);
                Book book2= (Book) list.get(j+1);
                if (book1.getPrice()> book2.getPrice()){
                    list.set(j,book2);
                    list.set(j+1,book1);
                }
            }
        }
    }
}

 

posted @ 2024-07-05 16:30  Dr丶云幕  阅读(2)  评论(0编辑  收藏  举报