java Collection集合接口的介绍和使用详解
一.关于Collection接口的继承关系图
Collection接口有两个重要的子接口:List,Set。
List接口的三个重要的实现类:LinkedList,ArrayList,Vector
Set接口两个重要的实现类:HashSet,TreeSet
二.Collection接口的实现类的特点
1.Collection实现类,可以存放多个元素,每个元素可以是Object或子类
2.有些Collection实现类,可以存放重复的元素,有些不可以
3.有些Collection实现类,有些是有序的(List),有些是无序的(Set)
4.Collection接口没有直接实现类,是通过它的子接口Set和List来实现的
三.Collection接口的常用方法
由于Collection接口无法实例化,要想使用Collection接口的方法我们就用Collection的实现子类ArrayList来演示它的常用方法
1.add:添加单个元素
(里面存的是一个个对象,并不是基本数据类型,底层会自动装箱。并且添加成功返回true,添加失败返回false)
public static void main(String[] args) { Collection collection = new ArrayList<>(); //add方法的使用 boolean b = collection.add("jack"); System.out.println(b);//输出结果:true collection.add(10); collection.add(true); System.out.println("List="+collection);//输出结果:List=[jack, 10, true] }
2.remove:删除指定元素
(如果按元素删除返回值就是boolean类型即删除成功就放回true,删除失败就放回false。如果按照索引删除返回值就是删除的元素)
public static void main(String[] args) { List list = new ArrayList<>(); list.add("jack"); list.add(10); list.add(true); //remove:方法的使用 //按照索引删除(索引不存在就报错) Object o = list.remove(1); System.out.println(o); //输出结果:10 //按照元素删除 boolean b = list.remove(true); System.out.println(b);//输出结果:true System.out.println("List="+list);//输出结果:List=[jack] }
3.contains:查找元素是否存在
(返回类型是boolean类型:如果元素存在就返回true,不存在就返回false)
public static void main(String[] args) { List list = new ArrayList<>(); list.add("jack"); list.add(10); list.add(true); //contains:方法的使用 boolean b = list.contains("jack"); System.out.println(b);//输出结果:true }
4.size:获取元素的个数
public static void main(String[] args) { List list = new ArrayList<>(); list.add("jack"); list.add(10); list.add(true); //size:方法的使用 int s = list.size(); System.out.println(s);//输出结果:3 }
5.isEmpty:判断此集合是否为空
(如果此集合为空返回true,不为空返回false)
public static void main(String[] args) { List list = new ArrayList<>(); list.add("jack"); list.add(10); list.add(true); //isEmpty:方法的使用 boolean b = list.isEmpty(); System.out.println(b);//输出结果:false }
6.clear:清空集合
public static void main(String[] args) { List list = new ArrayList<>(); list.add("jack"); list.add(10); list.add(true); //clear:清空集合 list.clear(); System.out.println("List="+list);//输出结果:List=[] }
7.addAll:添加多个元素
(添加成功返回true,添加失败返回false。只要是实现Collection接口的子类都可以传入addAll方法中)
public static void main(String[] args) { List list = new ArrayList<>(); list.add("jack"); list.add(10); list.add(true); //addAll:方法的使用 List newList = new ArrayList<>(); newList.add("西游记"); newList.add("三国演绎"); boolean b = list.addAll(newList); System.out.println(b);//输出结果:true System.out.println("list="+list);//输出结果:list=[jack, 10, true, 西游记, 三国演绎] }
8.containsAll:查找多个元素是否存在
(如果元素多存在就返回true,否则返回false。只要是实现Collection接口的子类都可以传入containsAll方法中)
public static void main(String[] args) { List list = new ArrayList<>(); list.add("jack"); list.add(10); list.add(true); //containsAll:方法的使用 List newList = new ArrayList<>(); newList.add("jack"); newList.add(10); boolean b = list.containsAll(newList); System.out.println(b);//输出结果:true }
9.removeAll:删除多个元素
(如果删除成功就返回true,否则就返回false。只要是实现Collection接口的子类都可以传入removeAll方法中)
public static void main(String[] args) { List list = new ArrayList<>(); list.add("jack"); list.add(10); list.add(true); //removeAll:方法的使用 List newList = new ArrayList<>(); newList.add("jack"); newList.add(true); boolean b = list.removeAll(newList); System.out.println(b); System.out.println("list="+list); }
四.Collection接口遍历元素的方式
1.使用迭代器遍历(Iterator)
- 迭代器的基本介绍
1).Iterator对象称为迭代器,主要用于遍历Collection集合中的元素
2).所有实现Collection接口的的集合类都有一个iterator()方法,用以返回一个实现Iterator接口的对象,即可以返回一个迭代器3).Iterator仅用于遍历集合,Iterator本身并不存放对象
- 迭代器的执行原理
1).通过Collection接口实现类的iterator()方法得到一集合的迭代器(Iterator)
Iterator iterator = list.iterator();
2).通过迭代器(Iterator)里的hasNext()方法判断集合是否有下一个元素,如果有返回true,否则返回false
while (iterator.hasNext()){ System.out.println(iterator.next()); }
3).通过迭代器(Iterator)里的next()方法返回指针下移后集合位置上的元素(next()方法作用是指针下移并且返回下移后集合位置上的元素)4).原理图
5).代码演示
public static void main(String[] args) { List list = new ArrayList<>(); list.add("jack"); list.add(10); list.add(true); //使用迭代器遍历集合 //1.先得到list集合的迭代器(Iterator) Iterator iterator = list.iterator(); //2.使用while循环遍历 while (iterator.hasNext()){ //3.返回下一个元素 Object o = iterator.next(); System.out.println(o);//遍历完最终输出结果为:jack 10 true } }
2.使用增强for循环
增强for循环可以代替Iteratro迭代器。1).基本语法
for(元素类型 元素名:集合名或数组名){ 访问元素 }
2).代码演示
public static void main(String[] args) { List list = new ArrayList<>(); list.add("jack"); list.add(10); list.add(true); //使用增强for循环遍历集合 for (Object o : list) { System.out.println(o); } }
3).特点:曾强for循环就是简化版的Iterator迭代器,本质一样,只能用于遍历集合或数组(上述代码进行Debug)
以上就是java Collection集合接口的介绍和使用详解的详细内容,更多关于java Collection集合接口的资料请关注脚本之家其它相关文章!
相关文章
Java concurrency之互斥锁_动力节点Java学院整理
本文通过示例代码给大家介绍了Java concurrency之互斥锁的相关知识,非常不错,具有参考借鉴价值,需要的朋友可以参考下2017-06-06Elasticsearch8.1中的Script使用实例深入解读
这篇文章主要为大家介绍了Elasticsearch8.1中的Script使用实例深入解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-10-10Java中stream.map和stream.forEach的区别
本文主要介绍了Java中stream.map和stream.forEach的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-08-08Spring多租户数据源管理 AbstractRoutingDataSource
本文技术了Spring多租户数据源管理 AbstractRoutingDataSource,下文详细内容介绍,需要的小伙伴可以参考一下2022-05-05java中BeanNotOfRequiredTypeException的问题解决(@Autowired和@Resourc
本文主要介绍了java中BeanNotOfRequiredTypeException的问题解决(@Autowired和@Resource注解的不同),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-07-07Spring Boot JPA Repository之existsBy查询方法失效的解决
这篇文章主要介绍了Spring Boot JPA Repository之existsBy查询方法失效的解决方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-06-06
最新评论