ArrayList(接口實現類)常用方法總結

集合框架概述:

集合又稱爲容器,用於存儲、提取、刪除數據。JDK提供的集合API都包含在 java.util 包內。

集合框架兩大分支:Collection接口和Map接口。

ArrayList <String>=new ArrayList<String>();

<String>泛型,用於約束元素數據類型,如果省略默認爲Object

ArrayList常用方法總結:

1、add(Object element) 向列表的尾部添加指定的元素,且每次只能添加一個元素

package list;

import java.util.ArrayList;

public class Test {
	
	public static void main(String[] args) {
		ArrayList list=new ArrayList<>();
		list.add("Tom");//用於向List集合容器中尾部添加一個元素
        }

2、size()  返回列表中的元素個數

package list;

import java.util.ArrayList;
public class Test {
	
	public static void main(String[] args) {
		ArrayList list=new ArrayList<>();
		int length =list.size();//用於獲取集合中有多少元素
                System.out.println(length);
        }

3、get(int index)  返回列表中指定位置的元素,index從0開始,即第一個元素是從0開始調用

package list;

import java.util.ArrayList;

public class Test {
	
	public static void main(String[] args) {
		ArrayList list=new ArrayList<>();
		list.add("Tom");//用於向List集合容器中尾部添加一個元素
		System.out.println(list.get(0));//獲取指定索引(從0開始)位置的元素
           }//輸出結果爲Tom

4、add(int index, Object element)  在列表的指定位置插入指定元素

package list;

import java.util.ArrayList;

public class Test {
	
	public static void main(String[] args) {
		ArrayList list=new ArrayList<>();
                list.add("Tom");
                list.add(0, "Kate");//在指定位置添加元素,原來位置的元素後移
		System.out.println(list.get(1));
        }//此時輸出爲Tom,第一個元素爲Kate,Tom順勢後移,所以爲“1”的位置

5、set(int i, Object element) 將索引位置元素替換爲元素element並返回被替換的元素。

package list;

import java.util.ArrayList;
import java.util.Iterator;

public class Test {
	
	public static void main(String[] args) {
		ArrayList list=new ArrayList<>();
                list.add("Tom");
                list.add("Jim");
                list.set(1, "Lucy");
      		System.out.println(list.get(1));
        }//輸出結果爲Lucy

6、clear()  從列表中移除所有元素

package list;

import java.util.ArrayList;
public class Test {
	
	public static void main(String[] args) {
		ArrayList list=new ArrayList<>();
                list.add("Tom");
                list.add("Jim");
                list.clear();
		int length =list.size();
		System.out.println(length);
        }//輸出結果爲0,證明集合中的元素已經被清空

7、isEmpty()  判斷列表是否包含元素,不包含元素則返回 true,否則返回false

package list;

import java.util.ArrayList;
public class Test {
	
	public static void main(String[] args) {
		ArrayList list=new ArrayList<>();
		list.add("Tom");
                boolean flag =list.isEmpty();//集合中沒有元素,則true
		System.out.println(flag);

        }//結果爲false,因爲集合中存在元素

8、contains(Object o)  如果列表包含指定的元素,則返回 true。

package list;

import java.util.ArrayList;
import java.util.Iterator;

public class Test {
	
	public static void main(String[] args) {
                ArrayList<String>list=new ArrayList<String>();
                int flag=list.contains("Jim");//用來判斷集合容器中是否含所有參考元素
		System.out.println(flag);

        }

此時我們要考慮contains方法的底層代碼包含的含義

public boolean contains(Object o) {
        return indexOf(o) >= 0;
}
public int indexOf(Object o) {
        if (o == null) {
            for (int i = 0; i < size; i++)
                if (elementData[i]==null)
                    return i;
        } else {
            for (int i = 0; i < size; i++)
                if (o.equals(elementData[i]))
                    return i;
        }
        return -1;
}

Object o是上轉型對象,存儲的是String類中對象的地址,看似調用的是Object類,但是因爲JVM運行的時候是根據地址確定對象,所以爲String類。其中elementData是一個數組,equals判斷現有元素是否與數組元素的內容保持一致。

9、remove(int  index)刪除指定索引(從0開始)位置的元素,並將被刪元素返回,將後面元素前移

package list;

import java.util.ArrayList;
public class Test {
	
	public static void main(String[] args) {
		list.add("Tom");
		list.add("Jim");
		
		String str=list.remove(0);//刪除指定索引(從0開始)位置的元素,並將元素返回,並就後面元素前移
		System.out.println(list.get(0));
        }

10、remove(Object o)  移除集合中第一次出現的指定元素,移除成功返回true,否則返回false。返回boolean型(有才能刪除),並後面元素前移

package list;

import java.util.ArrayList;
public class Test {
	
	public static void main(String[] args) {
		list.add("Tom");
		list.add("Jim");
		list.remove("Tom");//刪除List集合元素,並返回boolean(有才能刪除),並後面元素前移
		System.out.println(list.get(0));
        }

11、iterator()  返回按適當順序在列表的元素上進行迭代的迭代器(按照地址順序)

package list;

import java.util.ArrayList;
import java.util.Iterator;

public class Test {
	
	public static void main(String[] args) {
		ArrayList<String>list=new ArrayList<String>();		
                list.add("Tom");
		list.add("Jim");
		
                for(int i=0;i<list.size();i++) {
			System.out.println(list.get(i));
		}
		for(String name:list) {
			System.out.println(name);
		}
		Iterator<String> iterator=list.iterator();//將list集合中的元素轉到iterator中,現在有兩份,list和iterator
		while (iterator.hasNext()) {//判斷當前“指針”下面是否還有元素
			System.out.println(iterator.next());//如果指針下面還有元素,則移動指針並獲取相應元素
			
		}
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章