1. 程式人生 > >List常見方法用法總結

List常見方法用法總結

Collection 介面雖然是集合中最大的介面,但是如果直接使用Collection進行操作,表意並不明確,因此現在Collection介面現在已經不提倡使用,在這總結一下List子介面下的ArrayList類常見用法。

先在此羅列一些List介面中常見常用的方法:

在這裡插入圖片描述 在這些方法中get()方法是Collection介面中沒有出現的方法,因此使用get()方法可以很方便的遍歷List集合中的每一個元素,這是Collection介面不具備的,遍歷Collection集合中的元素則需要使用迭代器。

方法如何簡單使用,觀察例子:

package com.qty6.demo;

import java.
util.ArrayList; import java.util.List; /* 1. @author F3ver1 2. @date 2018/10/30 9:20 */ public class Demo { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("紅顏彈指老"); list.add("剎那芳華"); list.add("與其天涯思苦"); list.
add("戀戀不捨"); list.add("莫若相忘於江湖"); list.add("莫若相忘於江湖"); //列印該集合 System.out.println(list); System.out.println("-------------------"); //判斷長度和是否為空 System.out.println("list集合長度:"+list.size()+",list集合是否為空:"+list.isEmpty()); System.out.println("-------------------"
); //查詢指定元素的索引 System.out.println(list.indexOf("紅顏彈指老")); System.out.println(list.indexOf("剎那芳華")); System.out.println(list.lastIndexOf("紅顏彈指老")); System.out.println("-------------------"); //刪除指定索引的元素 list.remove(0); System.out.println(list); System.out.println("-------------------"); //改變指定索引的元素 list.set(2,"戀戀難忘"); System.out.println(list); } }

結果列印: [紅顏彈指老, 剎那芳華, 與其天涯思苦, 戀戀不捨, 莫若相忘於江湖, 莫若相忘於江湖] ———————————————————— list集合長度:6,list集合是否為空:false ———————————————————— 0 1 0 ———————————————————— [剎那芳華, 與其天涯思苦, 戀戀不捨, 莫若相忘於江湖, 莫若相忘於江湖] ———————————————————— [剎那芳華, 與其天涯思苦, 戀戀難忘, 莫若相忘於江湖, 莫若相忘於江湖]

List是個介面,無法直接為其例項化,選擇使用子類ArrayList為其例項化,可以通過以上的例子看出

  1. List集合可以儲存重複的元素
  2. 元素是有序的,這裡的順序就是按照為集合新增元素時的順序
  3. 是可以儲存不同資料型別的元素的,由於我規定了String,就只存了String
  4. 相較於陣列,長度是可以變化的
  5. 只能儲存引用資料型別

在這裡解釋一下第五條

public class Demo6 {
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add(100);//Integer i = 100;    Integer i = Integer.valueOf(100);
        list.add(200);
        System.out.println(list);
    }
}

這裡100並不是基本資料型別,因為List只能儲存引用資料型別,因此是包裝類Integer自動裝箱,以下語法自然是會報錯的

Integer<int> list = new ArrayList<>();
再總結一下List集合儲存物件並遍歷元素:
package com.qty6.demo;

import java.util.*;

/*
 * @author F3ver1
 * @date 2018/10/29 17:09
 */
class Student {
    private String name;
    private int age;
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public int getAge() {
        return age;
    }
}
class Test{
    public static void main(String[] args) {
        List<Student> List = new ArrayList<>();
        List.add(new Student("qty",20));
        List.add(new Student("qqq",21));
        List.add(new Student("aaa",22));
        Iterator<Student> iterator = List.iterator();
        //使用Collection介面中的迭代器遍歷
        while (iterator.hasNext()){
             Student student = iterator.next();
            System.out.println("姓名:"+student.getName()+",年齡:"+student.getAge());
        }
        System.out.println("-----------------------");
        //使用for迴圈,size()方法與get()方法結合遍歷
        for (int i = 0;i<List.size();i++){
            Student student = List.get(i);
            System.out.println("姓名:"+student.getName()+",年齡:"+student.getAge());
        }
        System.out.println("-----------------------");
        //使用List特有迭代器遍歷
        ListIterator<Student> listIterator = List.listIterator();
        while (listIterator.hasNext()){
            Student student = listIterator.next();
            System.out.println("姓名:"+student.getName()+",年齡:"+student.getAge());
        }
    }
}

結果列印: 姓名:qty,年齡:20 姓名:qqq,年齡:21 姓名:aaa,年齡:22 ———————————————— 姓名:qty,年齡:20 姓名:qqq,年齡:21 姓名:aaa,年齡:22 ———————————————— 姓名:qty,年齡:20 姓名:qqq,年齡:21 姓名:aaa,年齡:22

這裡推薦使用for迴圈遍歷集合元素,簡單容易使用