07_Collection集合1

集合体系结构

Collection 代表单列集合,每个元素(数据)只包含一个值

Map 代表双列集合,每个元素包含两个值(键值对)

Collection 框架集合

Collection 概述

List 系列集合:添加的元素是有序、可重复、有索引

  • ArrayList、LinekdList:有序、可重复、有索引

Set 系列集合:添加的元素是无序、不重复、无索引

  • HashSet:无序、不重复、无索引
  • LinkedHashSet:有序、不重复、无索引
  • TreeSet:按照大小默认升序排序、不重复、无索引
Collection 常用方法

Collection 是单列集合的祖宗,它的方法是全部单列集合都会继承的

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;public class Test {public static void main(String[] args) {Collection<String> c = new ArrayList<>();  // 多态写法// 1. 添加元素,添加成功返回truec.add("java1");c.add("java1");c.add("java2");c.add("java2");c.add("java3");System.out.println(c);  // [java1, java1, java2, java2, java3]// 2. 清空集合的元素
//      c.clear();// 3. 判断集合是否为空System.out.println(c.isEmpty());  // false// 4. 获取集合的大小System.out.println(c.size());  // 5// 5. 判断集合中是否包含某个元素System.out.println(c.contains("java1"));  // true// 6. 删除某个元素:如果有多个重复元素默认删除最前面的第一个System.out.println(c.remove("java1"));  // trueSystem.out.println(c);  // [java1, java2, java2, java3]// 7. 把集合转换为数组Object[] arr = c.toArray();System.out.println(Arrays.toString(arr));  // [java1, java2, java2, java3]String[] arr2 = c.toArray(new String[c.size()]);System.out.println(Arrays.toString(arr));  // [java1, java2, java2, java3]// 8. 把一个集合的全部数据倒入到另一个集合中去Collection<String> c1 = new ArrayList<>();c1.add("java11");c1.add("java22");Collection<String> c2 = new ArrayList<>();c2.add("java33");c2.add("java44");c1.addAll(c2);System.out.println(c1);  // [java11, java22, java33, java44]System.out.println(c2);  // [java33, java44]}
}
Collection 的遍历方式

迭代器

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

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;public class Test {public static void main(String[] args) {Collection<String> c = new ArrayList<>();c.add("Jack");c.add("Peter");c.add("Tomato");c.add("wang");System.out.println(c);  // [Jack, Peter, Tomato, wang]// 使用迭代器遍历集合// 1. 从集合对象中获取迭代器对象Iterator<String> iter = c.iterator();
//        System.out.println(iter.next());  // Jack
//        System.out.println(iter.next());  // Peter
//        System.out.println(iter.next());  // Tomato
//        System.out.println(iter.next());  // wang
//        System.out.println(iter.hasNext());  // 判断当前迭代位置是否有元素存在 false
//        System.out.println(iter.next());  // 出现异常 NoSuchElementException// 2. 结合循环与迭代器,进行集合的遍历while (iter.hasNext()) {System.out.println(iter.next());}}
}

增强 for

"增强for"可以用来遍历集合或者数组,"增强for"遍历集合,本质就是迭代器遍历集合的简化写法

import java.util.ArrayList;
import java.util.Collection;public class Test {public static void main(String[] args) {Collection<String> c = new ArrayList<>();c.add("Jack");c.add("Peter");c.add("Tomato");c.add("wang");System.out.println(c);  // [Jack, Peter, Tomato, wang]// 使用增强for遍历集合,或者遍历数组!!for (String ele : c) {System.out.println(ele);}int[] arr = {1, 2, 3, 4, 5};for (int num : arr) {System.out.println(num);}}
}

lambda 表达式

import java.util.ArrayList;
import java.util.Collection;
import java.util.function.Consumer;public class Test {public static void main(String[] args) {Collection<String> c = new ArrayList<>();c.add("Jack");c.add("Peter");c.add("Tomato");c.add("wang");System.out.println(c);  // [Jack, Peter, Tomato, wang]// 方式一(未经过简化)c.forEach(new Consumer<String>() {@Overridepublic void accept(String s) {System.out.println(s);}});// 方式二(lambda简化版)
//      c.forEach(s -> System.out.println(s));c.forEach(System.out::println);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/188840.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Lock还是Synchronized怎么选

需要加锁的时候是使用Lock还是synchronized关键字 开头先说结论&#xff0c;需要看加的锁是不是需要超时时间&#xff0c;超时没获取到的取消&#xff0c;这种需要使用Lock&#xff0c;Synchronized不支持超时时间的设置&#xff0c;那么其他的呢&#xff0c; 并发量大的时候使…

本地Lambda(SAM LI)+ MySQL(Docker)环境构筑注意点

目录构成 mysql8 ├─data ├─logs └─docker├─docker-compose.yml├─.env├─config└─my.cnf .env DB_NAMEtest_db ROOT_DB_PASSroot_password DB_USERtest_user DB_PASStest_password DB_PORT3306 TZAsia/Tokyo docker-compose.yml version: "3.6" ser…

OSI七层模型与TCP/IP四层模型

一、OSI七层模型简述 OSI 模型的七层是什么&#xff1f;在 OSI 模型中如何进行通信&#xff1f;OSI 模型有哪些替代方案&#xff1f; TCP/IP 模型关于专有协议和模型的说明 二、七层模型详解&#xff08;DNS、CDN、OSI&#xff09; 状态码DNS nslookup命令 CDN whois命令 …

Java中的异常你了解多少?

目录 一.认识异常二.异常分类三.异常的分类1.编译时异常2.运行时异常 四.异常的处理1.LYBL&#xff1a;事前防御型2.EAFP&#xff1a;事后认错型 五.异常的抛出Throw注意事项 六.异常的捕获1.异常的捕获2.异常声明throws3.try-catch捕获并处理 七.自定义异常 一.认识异常 在Jav…

Python实现FA萤火虫优化算法优化BP神经网络分类模型(BP神经网络分类算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 萤火虫算法&#xff08;Fire-fly algorithm&#xff0c;FA&#xff09;由剑桥大学Yang于2009年提出 , …

ChatGPT探索:提示工程详解—程序员效率提升必备技能【文末送书】

文章目录 一.人工智能-ChatGPT1.1 ChatGPT简介1.2 ChatGPT探索&#xff1a;提示工程详解1.2 提示工程的优势 二.提示工程探索2.1 提示工程实例&#xff1a;2.2 英语学习助手2.3 Active-Prompt思维链&#xff08;CoT&#xff09;方法2.4 提示工程总结 三.文末推荐与福利3.1《Cha…

这几款 idea 插件让效率起飞!

作者&#xff1a;苍何&#xff0c;前大厂高级 Java 工程师&#xff0c;阿里云专家博主&#xff0c;CSDN 2023 年 实力新星&#xff0c;土木转码&#xff0c;现任部门技术 leader&#xff0c;专注于互联网技术分享&#xff0c;职场经验分享。 &#x1f525;热门文章推荐&#xf…

【CAD二次开发】标注箭头,获取修改标注箭头图块

常见的的标注箭头有以下种类 public static List<string> ArrowBlock = new List<string>(){" ","_CLOSEDBLANK&

如何选择靠谱的安防监控系统?优秀的安防智能系统应该具备哪些特点?

随着科技的不断进步&#xff0c;安防智能系统变得越来越重要。当前的安防监控市场系统五花八门&#xff0c;用户该如何选择性比价高、功能又靠谱的平台&#xff1f;一个优秀的安防智能系统应该具备哪些特点&#xff1f;今天我们来针对这个话题讨论和分享一下。 1、高效性&…

带你手搓阻塞队列——自定义实现

&#x1f308;&#x1f308;&#x1f308;今天给大家分享的是——阻塞队列的自定义实现&#xff0c;通过自定义实现一个阻塞队列&#xff0c;可以帮助我们更清晰、更透彻的理解阻塞队列的底层原理。 清风的CSDN博客 &#x1f6e9;️&#x1f6e9;️&#x1f6e9;️希望我的文章…

Java全栈基础篇--集合

集合 集合&#xff1a;集合是java中提供的一种容器&#xff0c;可以用来存储多个数据。 特点&#xff1a; 长度不固定&#xff0c;还可以存储不同的数据&#xff08;但是一般都用同一类型&#xff09; 集合和数组既然都是容器&#xff0c;它们有啥区别呢&#xff1f; 数组的长…

EasyAmplicon (易扩增子)-扩增子高通量序列分析软件流程及脚本-详细使用方法——来自刘永鑫团队的秘籍

其他不重要&#xff0c;重要的是方向&#xff0c;资源&#xff0c;还要好用&#xff0c;建议大家先看看论文介绍&#xff1a; https://doi.org/10.1002/imt2.83EasyAmplicon: An easy‐to‐use, open‐source, reproducible, and community‐based pipeline for amplicon data…

Python【走出棋盘】

要求&#xff1a; 某个人进入如下一个棋盘中&#xff0c;要求从左上角开始走&#xff0c; 最后从右下角出来&#xff08;要求只能前进&#xff0c;不能后退&#xff09;&#xff0c; 问题&#xff1a;共有多少种走法&#xff1f; 0 0 0 0 0 0 0 0 0 0 0 0 0 …

软件测试-测试用例案例及思维导图展示

自动售货机的测试用例 一个杯子的测试用例 一支笔的测试用例 朋友圈点赞的测试用例 功能测试 1点赞后是否显示结果 2.点赞后是否可以取消; 3.点赞取消后是否可以重复点赞; 4.共同好友点赞后&#xff0c;是否有消息提醒; 5.非共同好友点赞后&#xff0c;是否有消息提醒; 6.点击…

[数据结构]深入浅出讲解二叉树-平衡二叉树-左右旋转

树是一种数据结构&#xff0c;单位为Node(节点)。不同于链表的直线排列&#xff0c;树呈现一种自上而下的分层排序规则。 树->数据结构&#xff1a; 单元为Node(节点)->当这样的节点多了 就可以关联出不同的形态 一个父节点有一个左子节点&#xff0c;有…

Java面向对象第九天

精华笔记&#xff1a; 多态&#xff1a;多种形态 意义&#xff1a; 同一个对象被造型为不同的类型时&#xff0c;有不同的功能------所有对象都是多态的 ----对象多态&#xff1a;我、你、水...... 同一类型的引用指向不同的对象时&#xff0c;有不同的实现------所有抽象方法…

uniapp-从后台返回的一串地址信息上,提取省市区进行赋值

1.这是接口返回的地址信息 2.要实现的效果 3.实现代码&#xff1a; <view class"address">{{item.address}}</view>listFun() {let url this.$url.url.positionInfoCompany;let param {page: this.page,limit: this.limit,keyword: this.keyword,};thi…

系统部署安装-Centos7-系统常用工具安装

文章目录 Yum环境安装介绍安装 GCC安装介绍验证安装在线安装离线安装 Yum环境安装 介绍 Yum是Centos操作系统中的一个重要工具&#xff0c;它可以帮助用户方便地管理软件安装和更新&#xff0c;而Y源则是提供这些软件的资源库。在后续在线安装系统时&#xff0c;需要使用到Yu…

大数据(十二):方差分析和参数估计

专栏介绍 结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 再推荐一下最近热更的:《大厂测试高频面试题详解》 该专栏对…

服务器环境是什么意思?

服务器环境是指运行在服务器上的软件和硬件配置的组合。它包括操作系统、服务器软件、数据库、编程语言解释器、网络配置以及其他必要的组件和设置。 服务器环境的配置对于应用程序的运行和性能至关重要。以下是一些常见的服务器环境组件&#xff1a; 操作系统&#xff1a;服务…