Collection集合的遍历方式-迭代器,增强for循环,Lambda

news/2025/1/3 2:44:41/

集合体系概述

a73d45620a3b496b98a17c5dc2382d8a.png

27fcf73760d14b2ea5e3beb50e775bbb.png 

 

 Collection是单列集合的祖宗,它规定的方法(功能)是全部单列集合都会继承的

public class Work1 {public static void main(String[] args)  {//简单认识一下Collection集合的特点ArrayList<String> list = new ArrayList<>();//有序 可重复 有索引list.add("java1");list.add("java2");list.add("java1");list.add("java2");System.out.println(list);System.out.println(list.get(1));HashSet<String> set = new HashSet<>();//无序 不重复 无索引set.add("java1");set.add("java2");set.add("java1");set.add("java2");set.add("java3");System.out.println(set);}
}

Collection的常用方法

1,public boolean add(E e):添加元素,添加成功返回true

Collection<String> c = new ArrayList<>();//多态写法c.add("java1");c.add("java1");c.add("java2");c.add("java2");c.add("java3");System.out.println(c);//[java1,java1,java2,java2,java3]

2,public void clear():清空集合的元素

        c.clear();System.out.println(c);//[]

3,public boolean isEmpty():判断集合是否为空,是空返回true,反之

System.out.println(c.isEmpty());//flase

4,public int size():获取集合的大小

System.out.println(c.size());//5

5,public boolean contains(Objects obj):判断集合中是否包含某个元素

System.out.println(c.contains("java1"));//true

6,public boolean remove(E e):删除某个元素,删除成功返回true :如果有多个重复元素默认删除前面的第一个!

System.out.println(c.remove("java1"));
System.out.println(c);//[java1,java2,java2,java3]

7,public Object[] toArray():把集合转换成数组

        Object[] arr = c.toArray();//把集合转换成数组System.out.println(Arrays.toString(arr));//转化成指定类型的数组形式String[] arr1 = c.toArray(new String[c.size()]);System.out.println(Arrays.toString(arr1));

8,把一个集合的全部数据倒入到另一个集合中去

        Collection<String> c1 = new ArrayList<>();c1.add("java1");c1.add("java2");Collection<String> c2 = new ArrayList<>();c2.add("java3");c2.add("java4");c1.addAll(c2);//把c2集合的全部数据倒入(拷贝)到c1集合中去System.out.println(c1);//[java1, java2, java3, java4]System.out.println(c2);//[java3, java4]

Collection的遍历方式

bdcecab6966b4e30b93cbf5f8ae557df.png

 

迭代器  遍历数组

迭代器概述:迭代器是用来遍历集合的专用方式(数组没有迭代器),在Java中迭代器的代表是Iterator

import java.util.*;public class Work1 {public static void main(String[] args)  {Collection<String> c = new ArrayList<>();//多态写法c.add("赵敏");c.add("小昭");c.add("素素");c.add("灭绝");System.out.println(c);//使用迭代器遍历数组//1,从集合中获取迭代器对象Iterator<String> it = c.iterator();//2,使用循环结合迭代器遍历集合while (it.hasNext()){String ele = it.next();System.out.println(ele);}}
}

增强for循环  遍历数组

968cb358679b4f85a3dc41874519fcf5.png

 

即能遍历循环,又能遍历数组

import java.util.*;public class Work1 {public static void main(String[] args)  {Collection<String> c = new ArrayList<>();//多态写法c.add("赵敏");c.add("小昭");c.add("素素");c.add("灭绝");System.out.println(c);//增强for遍历集合for (String ele : c){System.out.println(ele);}System.out.println("..............................");//增强for循环遍历数组String[] names = {"简隋英","李玉","洛羿","温小辉"};for (String name:names){System.out.println(name);}}
}

Lambda表达式  遍历集合

f191bb2e94ca413192ec738ea1836e8d.png

 

import java.util.*;
import java.util.function.Consumer;public class Work1 {public static void main(String[] args)  {Collection<String> c = new ArrayList<>();//多态写法c.add("娘娘腔");c.add("附加遗产");c.add("你却爱着一个傻逼");c.add("职业替身");System.out.println(c);c.forEach(new Consumer<String>() {@Overridepublic void accept(String s) {System.out.println(s);}});}
}

 3956f8b9a9224a97aaebd4552043ec1e.png

 

 

案例:遍历集合中的自定义对象

        需求:展示多部小说信息

        分析:1,每本小说都是一个对象,多部小说要使用集合装起来

                   2,遍历集合中的三个小说对象,输出每部电影的详情信息

import java.util.*;public class Work1 {public static void main(String[] args)  {Collection<movie> movies = new ArrayList<>();//往集合中添加对象.................................movies.add(new movie("《人鱼陷落》",9.5,"兰波"));movies.add(new movie("《德萨罗人鱼》",9.3,"德萨罗"));movies.add(new movie("《垂耳执事》",9.5,"言逸"));System.out.println(movies);//使用 增强for循环 遍历集合..........................for (movie m : movies) {System.out.println("名称:"+m.getName());System.out.println("评分:"+m.getScore());System.out.println("人物:"+m.getActor());}}
}
class movie{private String name;private double score;private String actor;public movie() {}public movie(String name, double score, String actor) {this.name = name;this.score = score;this.actor = actor;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}public String getActor() {return actor;}//重写toString方法....................@Overridepublic String toString() {return "movie{" +"name='" + name + '\'' +", score=" + score +", actor='" + actor + '\'' +'}';}
}

 

 


http://www.ppmy.cn/news/1252348.html

相关文章

SpringBoot参数校验@Validated和@Valid的使用

1、Validated和Valid区别 Validated&#xff1a;可以用在类、方法和方法参数上。但是不能用在成员属性&#xff08;字段&#xff09;上Valid&#xff1a;可以用在方法、构造函数、方法参数和成员属性&#xff08;字段&#xff09;上 2、引入依赖 Spring Boot 2.3 1 之前&…

SpringBoot+Redis获取电脑信息

获取电脑信息 测试 System.getProperties(); System: 是Java中的一个内置类&#xff0c;用于提供与系统相关的功能和信息。这个类中包含了一些静态方法和常量&#xff0c;可以让您方便地访问和操作系统级别的资源。 getProperties(): 是一个静态方法&#xff0c;它返回一个表示…

Arduino、ESP8266、HTML相关知识点记录

C代码 const char *ssid "********"; // 这里定义将要建立的WiFi名称。 const char *password "********"; // 这里定义将要建立的WiFi密码。 多WiFi连接&#xff1a; wifiMulti.addAP("**…

DBS note6:Hashing(哈希存储)

目录 一、一般策略 二、算法简述 三、哈希缺点&#xff08;Drawbacks of Hashing&#xff09; 四、举例 五、外部哈希的分析 一、一般策略 由于我们无法一次性将所有数据放入内存中&#xff0c;我们需要构建多个不同的哈希表并将它们连接在一起。然而&#xff0c;这个想法…

系列十三、SpringBoot的自动配置原理

一、概述 我们知道Java发展到现在功能十分的强大&#xff0c;生态异常的丰富&#xff0c;这里面离开不了Spring及其家族产品的支持&#xff0c;而作为Spring生态的明星产品Spring Boot可以说像王者一般的存在&#xff0c;那么的耀眼&#xff0c;那么的光彩夺目&#xff01;那么…

C# 泛型编译特性对性能的影响

C#作为一种强类型语言&#xff0c;具有丰富的泛型支持&#xff0c;允许开发者编写可以应对不同数据类型的通用代码。然而&#xff0c;在泛型编译时&#xff0c;针对结构和类作为泛型参数时&#xff0c;会对性能产生不同的影响。 泛型编译行为 在C#中&#xff0c;泛型编译行为取…

【brpc学习实践十二】bthread

概览 bthread(代码)是baidu-rpc使用的M:N线程库,是其稳定和高效的关键组件。能更好地利用多核cpu,能在pthread中运行,需要注意的是,bthread的work stealing机制会da让任务pthread发生切换,从而让thread_local变量不可信,通常在bthread_usleep或这join的时候就有可能发生…

2023/11/30JAVAweb学习

数组json形式 想切换实现类,只需要只在你需要的类上添加 Component 如果在同一层,可以更改扫描范围,但是不推荐这种方法 注入时存在多个同类型bean解决方式