Java集合1——Collection

集合是一种容器,用来装数据,类似于数组,但是集合的大小可变,开发中也经常能用到,为了满足不同的业务场景需求,JAVA还提供了不同特点的集合。

集合体系结构:单列集合(Collection)每个元素只包含一个值、双列集合(Map)每个元素包含两个值,又称为键值对。

一、Collection介绍

单列集合体系Collection<E>:

常用的两个接口:List<E>、Set<E>

List<E>又分为一些实现类比如ArrayList和LinkedList<E>

Set<E>分为一些实现类比如HashSet<E>、TreeSet<E>

二、Collection集合的特点

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

Set系列集合:提那家的元素无序、不重复、无索引。(LinkedHashSet是有序的,TreeSet按照大小默认升序排序)。

public class Test1 {public static void main(String[] args) {//简单确认一下Collection集合的特点ArrayList<String> list = new ArrayList<>();list.add("一");list.add("一");list.add("一");list.add("二");list.add("二");System.out.println(list);  //有序,可重复,有索引HashSet<String> set = new HashSet<>();set.add("111");set.add("333");set.add("222");set.add("333");set.add("111");System.out.println(set);  // 无序 不重复 无索引}
}

三、Collection的常用方法

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

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;public class Teest2 {public static void main(String[] args) {Collection<String> c = new ArrayList<>(); //多态写法//1.添加元素,添加成功返回truec.add("1");c.add("2");c.add("2");System.out.println(c);//2.清空集合c.clear();System.out.println(c);//3.判断是否为空,是空返回trueSystem.out.println(c.isEmpty());//4.获取集合的大小c.add("44");System.out.println(c.size());//5.判断是否包含某个元素System.out.println(c.contains("44"));//6.删除某个元素:如果有多个默认删除第一个,删除成功返回trueSystem.out.println(c.remove("44"));System.out.println(c);c.add("55");//7.public Object[] toArray():把集合转换成数组Object[] o = c.toArray();System.out.println(Arrays.toString(o));String[] s = c.toArray(new String[c.size()]); //指定类型数组System.out.println(Arrays.toString(s));//8.把一个集合的全部数据放入另一个集合Collection<String> c1 = new ArrayList<>();c1.add("111");c1.add("222");Collection<String> c2 = new ArrayList<>();c2.add("121");c2.add("212");c1.addAll(c2); //就是把c2集合的全部数据倒入到c1集合中去(数据类型得一样)System.out.println(c1);System.out.println(c2); //c2数据不变}
}

四、Collection的遍历方式

(一)迭代器

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

Collection集合获取迭代器的方法:Iterator<E> iterator() 返回集合中的迭代器对象,该迭代器对象默认指向当前集合的第一个元素。

Iterator迭代器中的常用方法:boolean hasNext() 询问当前位置是否有元素存在

E next() 获取当前位置的元素,并同时将迭代器对象指向下一个元素处

(二)增强for循环

for(元素的数据类型 变量名:数组或集合){}

增强for可以用来遍历集合或者数组

在idea中可以直接.for然后回车

(三)使用Lambda表达式

需要使用Collection提供的方法结合lambda遍历集合:

逐步简化

五、遍历集合中的自定义对象

public class Movie {private String name;double score ;private String actor;public Movie(String name, double score, String actor) {this.name = name;this.score = score;this.actor = actor;}@Overridepublic String toString() {return "Movie{" +"name='" + name + '\'' +", score=" + score +", actor='" + actor + '\'' +'}';}public Movie() {}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;}public void setActor(String actor) {this.actor = actor;}
}
import java.sql.Array;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;public class Test5 {public static void main(String[] args) {//1.创建一个集合容器负责存储多个电影对象Collection<Movie> mm = new ArrayList<Movie>();mm.add(new Movie("电影1",1,"演员1"));mm.add(new Movie("电影2",2,"演员2"));mm.add(new Movie("电影3",3,"演员3"));mm.add(new Movie("电影4",4,"演员4"));System.out.println(mm);for (Movie a : mm) {System.out.println(a.getName());System.out.println(a.getActor());System.out.println(a.getScore());System.out.println("------------");}}
}

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

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

相关文章

uni-app 经验分享,从入门到离职(四)——页面栈以及页面跳转的 API(开发经验总结)

文章目录 &#x1f4cb;前言⏬关于专栏 &#x1f3af;什么是页面栈&#x1f9e9;页面跳转方法&#x1f4cc; uni.navigateTo(OBJECT)&#x1f4cc; uni.redirectTo(OBJECT)&#x1f4cc; uni.reLaunch(OBJECT)&#x1f4cc; uni.switchTab(OBJECT)&#x1f4cc; uni.navigateBa…

前端基础自学整理|HTML + JavaScript + DOM事件

目录 一、HTML 1、Html标签 2、Html元素 3、基本的HTML标签 二、CSS 样式 层叠样式表 三、JavaScript 使用示例 四、HTML DOM 通过可编程的对象模型&#xff0c;javaScript可以&#xff1a; window document 1、查找HTML元素 2、操作HTML元素 获取元素的属性 四…

跨境电商本土化运营:深度融合本地市场,提升用户体验与市场份额

随着全球经济的不断发展&#xff0c;跨境电商在国际贸易中扮演着越来越重要的角色。然而&#xff0c;单一地面对全球市场可能并不足以满足用户的多样化需求&#xff0c;因此&#xff0c;跨境电商需要与本地市场深度融合&#xff0c;实现本土化运营。本文Nox聚星将和大家探讨跨境…

Java Web演化史:从Servlet到SpringBoot的技术进程及未来趋势

引言 在快速演进的IT世界里&#xff0c;Java Web开发始终屹立不倒&#xff0c;它不仅承担着历史的厚重&#xff0c;也始终面向未来。 自诞生之日起&#xff0c;Java Web技术就在不断地进化&#xff0c;以适应不同时代的需求。 本文将回顾Java Web开发的重要里程碑&#xff0c;…

Java 后端面试指南

面试指南 TMD&#xff0c;一个后端为什么要了解那么多的知识&#xff0c;真是服了。啥啥都得了解 MySQL MySQL索引可能在以下几种情况下失效&#xff1a; 不遵循最左匹配原则&#xff1a;在联合索引中&#xff0c;如果没有使用索引的最左前缀&#xff0c;即查询条件中没有包含…

我国硅胶出口量有所下降 市场集中度有望不断提升

我国硅胶出口量有所下降 市场集中度有望不断提升 硅胶又称为硅酸凝胶、氧化硅胶等&#xff0c;是一种高活性吸附材料&#xff0c;在常温常压下多表现为一种具有开放多孔结构的透明或乳白色粒状非晶态物质。相较于其它化工材料&#xff0c;硅胶具有柔软、耐高温、耐腐蚀、绝缘性…

【C++练级之路】【Lv.8】【STL】list类的模拟实现

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《C语言》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 引言一、结点二、迭代器2.1 成员变量与默认成员函数2.2 operator*2.3 operator->2.4 operator2.5 operator- …

Git详解及 github与gitlab使用

目录 1.1 关于版本控制 1.1.1 本地版本控制 1.1.2 集中化的版本控制系统 1.1.3 分布式版本控制系统 1.2 Git简介 1.2.1 Git历史 1.3 安装git 1.3.1 环境说明 1.3.2 Yum安装Git 1.3.3 编译安装 1.4 初次运行 Git 前的配置 1.4.1 配置git 1.4.2 获取帮助 1.5 获取 G…

C#知识点-15(匿名函数、使用委托进行窗体传值、反射)

匿名函数 概念&#xff1a;没有名字的函数&#xff0c;一般情况下只调用一次。它的本质就是一个方法&#xff0c;虽然我们没有定义这个方法&#xff0c;但是编译器会把匿名函数编译成一个方法 public delegate void Del1();//无参数无返回值的委托public delegate void Del2(s…

React快速入门(二)组件与函数

React快速入门&#xff08;二&#xff09;组件与函数React脚手架React组件化开发setState原理React更新机制使用ref受控/非受控组件高阶函数Portals/fragment/StrictMode React快速入门&#xff08;二&#xff09;组件与函数 React脚手架 脚手架让项目从搭建到开发&#xff0…

《游戏引擎架构》--学习3

内存管理 优化动态内存分配 维持最低限度的堆分配&#xff0c;并且永不在紧凑循环中使用堆分配 容器 迭代器 Unicode

TCP 三次握手和四次挥手

为了准确无误地把数据送达目标处&#xff0c;TCP协议采用了三次握手策略。 1 TCP 三次握手漫画图解 如下图所示&#xff0c;下面的两个机器人通过3次握手确定了对方能正确接收和发送消息(图片来源网络)。 简单示意图&#xff1a; 客户端–发送带有 SYN 标志的数据包–一次握手…

数据库管理-第153期 Oracle Vector DB AI-05(20240221)

数据库管理153期 2024-02-21 数据库管理-第153期 Oracle Vector DB & AI-05&#xff08;20240221&#xff09;1 Oracle Vector的其他特性示例1&#xff1a;示例2 2 简单使用Oracle Vector环境创建包含Vector数据类型的表插入向量数据 总结 数据库管理-第153期 Oracle Vecto…

采用SSI技术的FPGA器件

9个关于SSI芯片的必知问题-腾讯云开发者社区-腾讯云 (tencent.com)https://cloud.tencent.com/developer/article/1530543

无人机快递(物流)技术方案,无人机快递(物流)基础知识

无人机快递技术是一种利用无人机进行快递配送的先进技术。通过利用无人机&#xff0c;快递企业能够在偏远地区或难以通行的地区提供配送服务&#xff0c;同时提高配送效率并降低人力成本。 无人机基本情况 无人驾驶飞机简称“无人机”&#xff0c;是利用无线电遥控设备和自备的…

使用 JMeter 生成测试数据对 MySQL 进行压力测试

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

离散数学(一) 集合

属于关系 表示 枚举法; 叙述法; 文氏图法 基数 空集 全集 全集是相对唯一的

还在为选择办公软件而烦恼吗?不妨试试ONLYofficeV8.0

目录 一.优势一DOC 1.丰富的文字处理功能 2.按用户既定的规则编辑 3.使用AI助手 4.保持创意 5.深入分析文本 6.改善团队工作流程 7.轻松对比文档 8.扩展编辑功能 二.优势二sheet 1.数据分析 2.轻松实现精准计算 3.轻松分析数据 4.可视化呈现数据 5.增强团队协作…

反转链表.

题目描述 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 解题方法 假设链表为 1→2→3→∅&#xff0c;我们想要把它改成∅←1←2←3。在遍历链表时&#xff0c;将当前节点的 next指针改为指向前一个节点。由于节点没有引用其前一…

写给正在迷茫的你:4年程序员职业生涯感悟

前言 最近有许多小伙伴找我来咨询Python&#xff0c;我来讲几个极其重要&#xff0c;但是大多数Python小白都在一直犯的思维错误吧&#xff01;如果你能早点了解清楚这些&#xff0c;会改变你的编程学习生涯的。小编这一期专门总结了大家问的最多的&#xff0c;关于学习Python…