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());//如果指针下面还有元素,则移动指针并获取相应元素
			
		}
	}
}

 

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