ArrayList方法总结

一、集合

    集合是一种容器,可以放置一系列类对象(基本类型不可以),可以实现的功能(增删查)要优于数组,下面是集合的分类图:

    如图所示:Collection集合接口有两个子接口分别为:List、Set 

    List中又有两个实现子类: ArrayList、Vetor;

    Set接口中又有两个实现子类: TreeSet、 HashSet;

二、ArrayList 集合的创建

import java.util.ArrayList;
public class Csdn {
	public static void main(String[] args) {
		ArrayList arrayList =new ArrayList<>();
	}
}

    1、引包(java.util.ArrayList)

    2、创建集合(ArrayList arrayList =new ArrayList<>())

    与数组相似,定义的集合索引从零开始

    3、泛型:

public class Csdn {
	public static void main(String[] args) {
		ArrayList<String> arrayList =new ArrayList<String>();
        arrayList.add(new Csdn());
	}
}

    在ArrayList后面<引用类型>可以定义创建集合中的类型:如图所示,由于括号中定义的类型为String,此时arrayList.add(new Csdn())类型不匹配,错误;

    默认的泛型为:Object类

三、ArrayList 中的方法

    1、add(Object)、get(int)、add(int , Object) 添加

public class Csdn {
	public static void main(String[] args) {
		ArrayList<String> arrayList =new ArrayList<String>();
		arrayList.add("Tom");
		arrayList.add("Jim");
		System.out.println(arrayList.get(0));
	}
}

    add(泛型)中的作用是在末尾添加一个新的元素进入集合中

    get ( int ) 该方法的作用是得到集合中特定位置的元素:如图,意思即使得到第一个元素


	public static void main(String[] args) {
		ArrayList<String> arrayList =new ArrayList<String>();
		arrayList.add("Tom");
		arrayList.add("Jim");
		arrayList.add(0,"lucy");
		System.out.println(arrayList.get(1));
	}

    add(int , Object)的作用是插入一个元素进入集合:    如上面的代码 arrayList.add(0,"lucy")即将lucy这个字符串插入到集合索引为零的位置上,原本的数据进行后移移位


    2、set(int ,Object)   替换

public class Csdn {
	public static void main(String[] args) {
		ArrayList<String> arrayList =new ArrayList<String>();
		arrayList.add("Tom");
		arrayList.add("Jim");
		arrayList.set(1, "lucy");
		System.out.println(arrayList.get(1));
	}
}

    set(int ,泛型)方法是将特定索引位置的数据进行替换,不改变其他数据的值;上图的执行结果为:lucy

    3、contain(Object)、isEmpty()判断    content(泛型):检查集合中是否存在指定泛型:  上图代码:因为集合中存在"Tom"字符串,因此输出:true(返回值为Boolean)

    思考:contain(Object)是怎么执行的?

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;
    }

    contains关键是将“Tom”的值传进去,此时作为上转型对象处理,在对其使用o.equals(elementData[i])使其与集合中的每一个元素进行比较,通过返回值判断是否在集合中存在


public class Csdn {
	public static void main(String[] args) {
		ArrayList<String> arrayList =new ArrayList<String>();
		arrayList.add("Tom");
		arrayList.add("Jim");
		System.out.println(arrayList.isEmpty());
	}
}

    isEmpty()是判断集中是否为空,是则返回true;


    4、remove(int)、remove(Object)、clear()、size()  移除

import java.util.ArrayList;
public class Csdn {
	public static void main(String[] args) {
		ArrayList<String> arrayList =new ArrayList<String>();
		arrayList.add("Tom");
		arrayList.add("Jim");
		arrayList.remove(0);
		System.out.println(arrayList.get(0));
	}
}

    remove(int):根据索引来移除集合中的元素,并且使后面的元素向前移动:可以看出上述在代码在一处索引为0的元素后在进行一次输出后的结果为:Jim 可以看出元素确实前移了


import java.util.ArrayList;
public class Csdn {
	public static void main(String[] args) {
		ArrayList<String> arrayList =new ArrayList<String>();
		arrayList.add("Tom");
		arrayList.add("Jim");
		arrayList.remove("Tom");
		System.out.println(arrayList.get(0));
	}
}

    remove(Object):通过内容来移除数据


import java.util.ArrayList;
public class Csdn {
	public static void main(String[] args) {
		ArrayList<String> arrayList =new ArrayList<String>();
		arrayList.add("Tom");
		arrayList.add("Jim");
		arrayList.clear();
		System.out.println(arrayList.size());
	}
}

    clear():清空集合数据    size()输出集合长度

四、ArrayList 遍历

import java.util.ArrayList;
public class Csdn {
	public static void main(String[] args) {
		ArrayList<String> arrayList =new ArrayList<String>();
		arrayList.add("Tom");
		arrayList.add("Jim");
		for(int i=0;i<arrayList.size();i++) {
			System.out.println(arrayList.get(i));
		}
		System.out.println("#########################3");
		for (String string : arrayList) {
			System.out.println(string);
		}
	}
}

    代码中的两种输出格式在数组中也有所涉及


    1、iterator方法

import java.util.ArrayList;
import java.util.Iterator;
public class Csdn {
	public static void main(String[] args) {
		ArrayList<String> arrayList =new ArrayList<String>();
		arrayList.add("Tom");
		arrayList.add("Jim");
		Iterator<String> iterator=arrayList.iterator();
		while(iterator.hasNext()){
			System.out.println(iterator.next());
		}
	}
}

    在ArrayList集合中存在Iterator()方法,可以将ArrayList集合类型装换为Iterator类型;Iterator中的两个方法可以很好的达到遍历的效果:

    1、iterator.hasNext(): 判断是否有下一个数据

    2、iterator.next():返回下一个数据的值并移动其中的“指针”  注:开始的"指针"为空

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值