JAVA学习心——ArrayList常用方法总结

在学习ArrayList常用方法之前,我们先了解ArrayList是从哪里来的。
ArrayList是一个集合。集合又称为容器,用于存储、提取、删除数据。
集合中有很多分类,我们先从ArrayList中了解,了解ArrayList的常用方法。
在这里插入图片描述

1、add(); //用于在集合最后增加一个元素。
add(index,element);//用于在集合指定位置增加元素,并且其他元素后移

例程如下:

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

此时输出结果是:[Tom]

我们其实可以定义这个集合的数据类型,只需要在定义集合时,后边加上泛型<>,在泛型内定义数据类型。我们在第二个常用方法中尝试使用。


2、.size();//用于“测量”集合大小,或者说用于获取集合中有多少个元素。返回值类型是int,直接返回数值。

这里我们重新集合在ArrayList中增加泛型。

例程如下:

public class Test{
         public static void main (String[] args){
         	ArrayList<String> list = new ArrayList<String>();
                list.add("Tom");
                System.out.println(list.size());
         }
}

此时输出结果是:1


下面介绍方法时,默认有类和main方法和字符串类型的集合。

3、.get();//用于获取集合指定位置(从0开始)的元素。

		list.add("Tom");
		list.add("Jim");
		System.out.println(list.get(1)):

由于是从0开始数,所以输出结果是:Jim


4、.clear();//清除集合中所有元素。无返回值

		list.clear();

5、isEmpty();//用于测试集合是不是为空。返回子值是boolean类型。

		System.out.println(list.isEmpty());

由于我们没有在集合中放元素,所以输出结果是:true


6、remove();//用于删除集合中元素,如果remove(位置),则删除指定位置元素。如果是remove(“元素”);则直接删除元素,另外如果要删除的元素中有相同的,remove只会执行一次。

如果觉得难理解,那么请看下边例程:

		list.add("Jim");
		list.add("Tom");
		list.add("Tom");
		list.remove("Tom");
		System.out.println(list);

此时程序结果如下:显而易见并没有remove走全部的Tom,只remove走了第一Tom。
在这里插入图片描述


7、.contains();//用于测试集合中是否有某个元素,返回值类型是boolean。
例程:

		list.add("Jim");
		list.add("Tom");
		System.out.println(list.cotains());

思考:这个判断过程是什么?
首先找到cotains源码:

public boolean contains(Object o) {
    return indexOf(o) >= 0;
}

此时我们发现contains调用了indexOf方法,将判断集合中是否有某个元素转化为判断indexOf的返回值是否大于等于0,于是乎,我又找到indexOf的源码,源码如下:

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

源码逻辑很容易理解,if-else分两种情况遍历,如果有equals的元素那么返回这个元素的“序号”(如果这个程序逻辑都没读懂,那就再多读几遍)。然后观察o.equals(elementData[i])这行代码,发现是一个多态,表面上编译的时候是使用object o调用equals,但实际上运行时是list在调用equals。


8、set(index,elemnet);//用于替换指定位置的元素。
例程:

		list.add("jim");
		list.add("Tom");
		list.set(1,"Alan");
		System.out.println(list);

程序运行结果如下:显而易见替换了1号位的Tom
在这里插入图片描述

遍历ArrayList中的所有元素

如何遍历?
1、使用最简单最基础的for循环

		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i));

2、for加强循环。

		for(String name:list){
			System.out.println(name);
		}

3、使用.iterator(),将集合中的元素转存在iterator变量中。然后使用.hasNext()和next()输出。

		Iterator<String> iterator = list.iterator();
		while(iterator.hasNext()) {//判断当前指针下边是否还有元素
			System.out.println(iterator.next());//如果指针下边还有元素,则移动指针并获取相应位置的元素
		}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值