Java学习之路003——集合

news2024/11/24 12:50:23

1、 代码演示

【1】新增一个类,用来测试集合。先创建一组数组,数组可以存放不同的数据类型。对于Object类型的数组元素,可以通过.getClass方法获取到具体类型。

【2】如果数组指定类型为int的时候,使用.getClass()就会提示错误。

【3】集合获取元素的值,通过get(下标)来获取。

【4】集合可以获取到指定元素的类型

【5】可以直接输出集合对象来打印集合的内容。使用输出语句,输出的对象会被自动toString()

List集合:

  • 是有序的,内存空间是连续的,查询效率高。

  • 删除和插入的效率低:删除或插入一个元素后,为了保证集合相邻数据的空间是连续的,那么其他元素也都要被移动。

LinkedList集合:

  • 查询效率低。

  • 删除和插入效率高。

2 集合常见操作

2.1 常用遍历

// 集合或元素个数 size()
System.out.println(list.size());

// 集合遍历 for循环
for (int i = 0; i < list.size(); i++) {
  System.out.println(list.get(i));
}
// foreach
for(Object o : list) {
  System.out.println(o);
}

2.2 迭代器进行遍历

Iterator iterator = list.iterator();
while (iterator.hasNext()) {
  System.out.println(iterator.next());
}

3、Set集合

  •  List接口特点:  元素可以重复,保证顺序性

  •  Set接口特点:元素不可重复,不保证顺序

3.1 Set集合演示

Set集合的顺序是随机的, 并且会自动去重。

Set set = new HashSet();
set.add(1);
set.add("2");
set.add(3.3);
set.add(4.0F);
set.add(true);
set.add(3.3);

System.out.println(set);

3.2 Set集合遍历

只能通过迭代器进行遍历

        for (Object o : set) {
            System.out.println(o);
        }
        System.out.println("**************************");

        Iterator iterator = set.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }

3.3 TreeSet

无序不可重复,但是可以按照元素的大小顺序自动排序

Set set = new TreeSet();
set.add(1);
set.add(2);
set.add(33);

4、Map集合

4.1 Map基础操作

【1】map中的值,只能通过key来获得,不能通过下标来获取,因为数据是无序的。

Map map = new HashMap();

        map.put("name","Wesky");
        map.put("Company","NTI");
        map.put("age",18);
        map.put("sex","男");
        map.put("age",20);
        map.put(666,"hello world");
        map.put(666,999);
        System.out.println(map.keySet());
        System.out.println(map.values());

【2】如果存在重复的key,以最后的key的数据为准,原先会被覆盖。

4.2 Map的遍历

两种遍历方式。

Set keySet = map.keySet();
for (Object o : keySet) {
  System.out.println("key = "+ o + " | value = "+map.get(o));
}
System.out.println("**************************");

for (Object o : map.entrySet()) {
  Map.Entry entry = (Map.Entry) o;
  System.out.println("key = "+ entry.getKey() + " | value = "+entry.getValue());
}

五、集合工具类

5.1 Arrays

提供一系列数组与集合转换工具

5.2 Collections

提供对集合的多种操作方式

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

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

相关文章

官方不推荐@Autowired

1用lombok注解 2 构造器

云原生是什么?核心概念和应用方法解析

什么是云原生&#xff1f; 云原生是一种基于容器、微服务和自动化运维的软件开发和部署方法。它可以使应用程序更加高效、可靠和可扩展&#xff0c;适用于各种不同的云平台。 如果要更直接通俗的来解释下上面的概念。云原生更准确来说就是一种文化&#xff0c;是一种潮流&…

使用邮箱验证实现登录功能(发送邮件,redis)

目录 概述 前端搭建 后端搭建 生成验证码-存入redis&#xff08;主要过程代码&#xff09; 发送邮件&#xff08;主要过程代码&#xff09; 登录验证-取出redis中数据进行验证&#xff08;主要代码&#xff09; 完整代码一-LoginController 完整代码二-LoginService 完…

域基础和基本环境搭建

1.1 名词解释 域和工作组的区别&#xff1a; 工作组中所有的计算机都是对等的&#xff0c;也就是没有服务器和客户机的之分&#xff0c;所以工作组并不存在真正的集中管理作用&#xff1b;域是一个有安全边界的计算机集合&#xff0c;安全边界指的是一个域中的用户无法访问到另…

六、并发集合

文章目录并发集合ConcurrentHashMap存储结构存储操作put方法putVal方法-散列算法putVal方法-添加数据到数组&初始化数组putVal方法-添加数据到链表扩容操作treeifyBin方法触发扩容tryPreSize方法-针对putAll的初始化操作tryPreSize方法-计算扩容戳并且查看BUGtryPreSize方法…

[git可视化软件]gitkraken平替:GitAhead

日期2023-02-28 gitkraken6.5.1已经不能登陆使用了!! 6.5.1免费版已经无法使用!!! 现在是2023-02-28 这款工具已经废除了6.5.1版本的使用功能了,我直接卡在登陆界面进不去项目了. 要想继续管理私有项目,只能升级最新版的软件,并且开通会员.会员费用高的一批,一年要59.4美元.约…

前端进阶JS运行原理

JS运行原理 深入了解V8引擎原理 浏览器内核是由两部分组成的&#xff0c;以webkit为例&#xff1a; WebCore&#xff1a;负责HTML解析、布局、渲染等等相关的工作&#xff1b;JavaScriptCore&#xff1a;解析、执行JavaScript代码&#xff1b; 官方对V8引擎的定义&#xff1…

docker部署zabbix6.2.7+grafana

目录 1、下载docker 2、下载相关镜像文件 3、创建一个供zabbix系统使用的网络环境 4、创建一个供mysql数据库存放文件的目录 5、启动mysql容器 6、为zabbix-server创建一个持久卷 7、启动zabbix-server容器 8、创建语言存放目录 9、启动zabbix-web容器 10、启动zabbix…

探析集团企业 1+N 模式,重新定义集团型CRM

目录 一、客户经营、运营监控 二、流程驱动、业务成长 三、规则规范 业务治理 什么是集团型CRM【1N】&#xff1f;本文中我们可以把集团看作为“1”&#xff0c;其他分公司或组织看作为“N”。本篇我们主要分析集团CRM业务定位。 我们从企业集团总部的职能定位确定集团CRM…

攻不下dfs不参加比赛(七)

标题 为什么练dfs题目总结重点为什么练dfs 相信学过数据结构的朋友都知道dfs(深度优先搜索)是里面相当重要的一种搜索算法,可能直接说大家感受不到有条件的大家可以去看看一些算法比赛。这些比赛中每一届或多或少都会牵扯到dfs,可能提到dfs大家都知道但是我们为了避免眼高手…

数据结构(Java)---队列

1.简介 队列是一种操作受限的线性表&#xff0c;和栈类似&#xff0c;队列的限制主要是运行在表的一端进行插入操作&#xff0c;而在表的另一端进行删除的操作&#xff08;栈的操作受限是只能在一端进行插入和删除&#xff09;。队列中进行插入的一端称为队尾 &#xff0c;删除…

【JavaWeb】Servlet基础

文章目录1.Tomcat服务器安装注意事项2.编写WebApp3.BS系统角色和协议4.模拟Servlet4.1模拟sun公司4.2模拟Tomcat服务器4.3模拟WebApp开发者5.开发一个带有Servlet的WebApp5.1创建一个名为crm的项目5.2 在项目中创建一个名为WEB-INF的文件&#xff08;必须&#xff09;5.3在WEB-…

JAVA开发(java类加载过程)

1、java语言的平台无关性。 因为java语言可以跑在java虚拟机上&#xff0c;所以只要能装java虚拟机的地方就能跑java程序。java语言以后缀名 .java为文件扩展名。通过java编译器javac编译成字节码文件.class 。java字节码文件通过java虚拟机解析运行。所以java语言可以说是编译…

解决windows安装wxPython安装失败、速度过慢及PyCharm上wx包爆红问题

网上关于wxPython安装失败&#xff0c;安装速度过慢&#xff0c;以及安装成功后PyCharm中import wx仍然爆红的文章有很多&#xff0c;也特别杂&#xff0c;解决起来特别困难&#xff0c;今天在这里对问题的处理进行一个整合&#xff0c;希望能帮助到大家。 安装wxPython这里运用…

模拟微信聊天-课后程序(JAVA基础案例教程-黑马程序员编著-第八章-课后作业)

【案例9-1】 模拟微信聊天 【案例介绍】 1.案例描述 在如今&#xff0c;微信聊天已经人们生活中必不可少的重要组成部分&#xff0c;人们的交流很多都是通过微信来进行的。本案例要求&#xff1a;将多线程与UDP通信相关知识结合&#xff0c;模拟实现微信聊天小程序。通过监…

华为OD机试题【翻转单词顺序】用 C++ 进行编码 (2023.Q1)

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单) 文章目录 最近更新的博客使用说明翻转单词顺序题目输入输出示例一输入输出示例二输入输出说明示例三输入输出说明示例四

解决跑pytorch代码报错AttributeError: module ‘distutils‘ has no attribute ‘version‘

跑pytorch代码报错AttributeError: module ‘distutils’ has no attribute ‘version’ Traceback (most recent call last): File “D:/pycharm_envir/gaozhiyuan/Segmentation/pytorch_segmentation/deeplabv3-plus-pytorch-main/train.py”, line 16, in from utils.callb…

【C++修炼之路】22.哈希

每一个不曾起舞的日子都是对生命的辜负 哈希一.哈希概念及性质1.1 哈希概念1.2 哈希冲突1.3 哈希函数二.哈希冲突解决2.1 闭散列/开放定址法2.2 开散列/哈希桶三.开放定址法代码3.1 插入Insert3.2 查找Find3.3 删除Erase3.4 映射的改良&完整代码四.开散列代码4.1 插入Inser…

Linux之init.d、rc.d文件夹说明

备注&#xff1a;Ubuntu没有rc.d文件夹&#xff0c;原因看问题四 Linux的几个重要文件 rc.d&#xff0c;init.d文件夹的说明 今天在研究mysql的安装的时候&#xff0c;最后一步要创建一个软连接&#xff0c;使得mysql服务可以自启动&#xff0c;代码如下&#xff1a; ln -s…

扒系统CR8记录

目录 终极改造目标 过程记录 参考 为了将一套在线安装的系统&#xff0c;在不了解其架构、各模块细节的基础上&#xff0c;进行扒弄清楚&#xff0c;作以下记录。 终极改造目标 最终的目标&#xff0c;就是只通过CreMedia8_20230207.tar.gz解压 install 就把业务包安装了&…