List集合_介绍&常用方法和ArrayList集合
List集合
我们掌握了Collection接口的使用后,再来看看Collection接口中的子类,他们都具备那些特性呢?
接下来,我们一起学习Collection中的常用几个子类(java.util.List
集合、java.util.Set
集合)
List接口介绍
java.util.List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合。在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致
看完API,我们总结一下:
List接口特点:
1.它是一个元素存取有序的集合。例如,存元素的顺序是11、22、33。那么集合中,元素的存储就是按照11、22、33的顺序完成的)。
2.它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。
3.集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素
List接口中常用方法
List作为Collection集合的子接口,不但继承了Collection接口中的全部方法,而且还增加了一些根据元素索引来操作集合的特有方法,如下:
~public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。
~public E get(int index):返回集合中指定位置的元素。
~public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。
~public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
/* java.util.List接口 extends Collection接口 List接口的特点: 1.有序的集合,存储元素和取出元素的顺序是一致的(存储123 取出123) 2.有索引,包含了一些带索引的方法 3.允许存储重复的元素 List接口中带索引的方法(特有) - public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。 - public E get(int index):返回集合中指定位置的元素。 - public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。 - public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。 注意: 操作索引的时候,一定要防止索引越界异常 IndexOutOfBoundsException:索引越界异常,集合会报 ArrayIndexOutOfBoundsException:数组索引越界异常 StringIndexOutOfBoundsException:字符串索引越界异常 */ public class Demo01List { public static void main(String[] args) { //创建一个List集合对象,多态 List<String> list = new ArrayList<>(); //使用add方法往集合中添加元素 list.add("a"); list.add("b"); list.add("c"); list.add("d"); list.add("a"); //打印集合 System.out.println(list);//[a, b, c, d, a] 不是地址重写了toString //public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。 //在c和d之间添加一个learn list.add(3,"learn");//[a, b, c, learn, d, a] System.out.println(list); //public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。 //移除元素 String removeE = list.remove(2); System.out.println("被移除的元素:"+removeE);//被移除的元素:c System.out.println(list);//[a, b, learn, d, a] //public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。 //把最后一个a,替换为A String setE = list.set(4, "A"); System.out.println("被替换的元素:"+setE);//被替换的元素:a System.out.println(list);//[a, b, learn, d, A] //List集合遍历有3种方式 //使用普通的for循环 for(int i=0; i<list.size(); i++){ //public E get(int index):返回集合中指定位置的元素。 String s = list.get(i); System.out.println(s); } System.out.println("-----------------"); //使用迭代器 Iterator<String> it = list.iterator(); while(it.hasNext()){ String s = it.next(); System.out.println(s); } System.out.println("-----------------"); //使用增强for for (String s : list) { System.out.println(s); } String r = list.get(5);//IndexOutOfBoundsException: Index 5 out-of-bounds for length 5 System.out.println(r); } }
集合可以用来存储多个相同类型的数据,跟数组的作用差不多,但是数组一旦创建,数组长度无法改变,而集合可以改变,下面就是关于ArrayList集合的一些知识
ArrayList是一个类,要使用ArrayList时要new一个对象。
创建ArrayList类对象的基本语法如下:
ArrayList<引用数据类型> 集合名称 = new ArrayList<>();
ArrayList后面的这个<>里的东西表示泛型,所谓泛型就是装在该集合中的元素都是统一的什么类型。
注意:ArrayList集合中的泛型只能是引用数据类型,不能是基本数据类型
public static void main(String[] args){ //创建一个泛型为String的ArrayList集合 //从JDK1.7之后的版本,new后面的ArrayList<>这个尖括号中不需要写东西,默认和第一个尖括号里的泛型一致 ArrayList<String> list = new ArrayList<>(); //注意:这里的list虽然是个对象,但是他存储的不是地址值,如果其中没有存储东西,那么他默认是“[]”,给该集合中添加元素,会添加在该方括号[]中。 System.out.println(list); //这里的输出是[] //给集合中添加元素的方法是add方法,用该集合对象直接调用即可: list.add("疾风剑豪"); list.add("封魔剑魂"); list.add("无双剑姬"); list.add("无极剑圣"); System.out.println(list); //这里的输出是[疾风剑豪,封魔剑魂,无双剑姬,无极剑圣] }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)