我的Java学习笔记(22)—容器接口之List接口(以ArrayList为实现类)学习以及自己实现ArrayList类

本文详细介绍了Java中的List接口及其常用方法,以ArrayList为例,探讨了增删查改操作。同时,文章逐步解析ArrayList的底层实现,并引导读者尝试自己实现ArrayList类,包括数组扩容、索引检查、set、get方法和remove方法的实现,加深对Java集合框架的理解。
摘要由CSDN通过智能技术生成
Collection表示一组对象,它是集中、收集的意思,Collection接口的两个子接口是List和Set接口。
Collection接口中定义了一系列方法,完整的可以查看api文档。而List和Set接口是Collection接口的继承接口,拥有所有的Collection的方法。

一、List接口的一些常用方法(ArrayList为例)

因此我们先来测试List接口的实现类ArrayList去看List接口的一些方法。

       Collection<String> arrayList=new ArrayList<>();//增加泛型的参数表示这个列表中要存放字符串类型
       
       System.out.println(arrayList.size());//列表中的元素数
       System.out.println(arrayList.isEmpty());//列表是否包含元素
       
       arrayList.add("John");//因为定义了泛型,所以存放元素只能是字符串类型
       arrayList.add("Archie");
       System.out.println(arrayList);//这里直接可以用容器名来输出,其实是默认调用了toString方法
       System.out.println(arrayList.size());
       System.out.println(arrayList.isEmpty());
       
       arrayList.remove("Archie");
       System.out.println(arrayList);//remove 指的是移除,并不是delete删除
       
       Object[] objects=arrayList.toArray();//toArray方法返回一个包含此集合中所有元素的数组。
       System.out.println(objects);
       
       System.out.println(arrayList.contains("hello"));//contains方法返回是否包含某个对象
       
       arrayList.clear();//clear操作清空了容器的所有内容
       System.out.println(arrayList.size());
       System.out.println(arrayList.isEmpty());

这里面需要注意的是,我们在add的时候,生成了一个字符串对象,然后将他的地址放进了容器中,那么remove操作之后其实只是把指针删除掉了,但是字符串对象并没有消失,clear也是一样,操作的是指针元素。

二、用来操作多个List容器的方法 (ArrayLis为例)

       List<String> list=new ArrayList<String>();
       list.add("aaaa");
       list.add("bbbbb");
       list.add("ccccc");
       list.add("dddddd");
       
       List<String> list2=new ArrayList<>();
       list2.add("ccccc");
       list2.add("ffffff");
       list2.add("ggggggggg");
       list2.add("hhhhhhhhh");
       
       System.out.println("list:"+list);
       
       list.addAll(list2);//addAll方法把第二个容器的所有内容加到第一个容器后面
       System.out.println("after addall ,list:"+list);
       list.removeAll(list2);//rem
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值