重学java 59.Properties属性集集合嵌套集合下总结
不要咀嚼小小悲观,而忘掉整个世界
—— 24.6.3
一、Properties集合(属性集)
1.概述
Properties 继承 于HashTable
2.特点
a、key唯一,value可重复
b、无序
c、无索引
d、线程安全
e、不能存null键,null值
f、Properties的key和value类型默认为String
3.数据结构:哈希表
4.特有方法
Object setProperty(string key,string value) —> 存键值对
String getProperty(String key) —> 根据key获取value的
Set<string> stringPropertyNames() —> 获取所有的key,保存到set集合中,相当于keyset方法
void load(Inputstream,instream) —> 将流中的数据加载到Properties集合中(IO部分)
import java.util.Properties; import java.util.Set;public class Demo255Properties {public static void main(String[] args) {Properties properties = new Properties();// Object setProperty(string key,string value) —> 存键值对properties.setProperty("username","root");properties.setProperty("password","1234");System.out.println(properties); // {password=1234, username=root}// String getProperty(String key) —> 根据key获取value的System.out.println(properties.getProperty("password")); // 1234// Set<string> stringPropertyNames() —> 获取所有的key,保存到set集合中,相当于keyset方法Set<String> set = properties.stringPropertyNames();for (String key : set) {System.out.println(properties.getProperty(key)); // 1234 // root}} }
二、集合嵌套
1.List嵌套List
需求:创建2个List集合,每个集合中分别存储一些字符串,将2个集合存储到第3个List集合中
import java.util.ArrayList;public class Demo256ListInList {public static void main(String[] args) { // 需求:创建2个List集合,每个集合中分别存储一些字符串,将2个集合存储到第3个List集合中ArrayList<String> list1 = new ArrayList<>();list1.add("杨过");list1.add("小龙女");list1.add("尹志平");ArrayList<String> list2 = new ArrayList<>();list2.add("大大怪");list2.add("小小怪");list2.add("开心超人");list2.add("小心超人");// list中的元素是两个ArrayList<String>// 所以泛型也应该是ArrayList<String>ArrayList<ArrayList<String>> list3 = new ArrayList<>();list3.add(list1);list3.add(list2);System.out.println(list3);// 先遍历大集合,再遍历小集合,获取元素for (ArrayList<String> list : list3) {// 遍历二维数组for (String s : list) {System.out.println(s);}}} }
2.List嵌套Map
需求:1班级有第三名同学,学号和姓名分别为:1=张三,2=李四,3=王五,2班有三名同学,学号和姓名分别为:1=黄晓明,2=杨颖,3=刘德华,请将同学的信息以键值对的形式存储到2个Map集合中,在将2个Map集合存储到List集合中。
import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.Set;public class Demo257ListInMap {// 1班级有第三名同学,学号和姓名分别为:1=张三,2=李四,3=王五,// 2班有三名同学,学号和姓名分别为:1=黄晓明,2=杨颖,3=刘德华,// 请将同学的信息以键值对的形式存储到2个Map集合中,在将2个Map集合存储到List集合中。public static void main(String[] args) {// 1.创建两个map集合HashMap<Integer, String> map1 = new HashMap<>();map1.put(1, "张三");map1.put(2,"李四");map1.put(3,"王五");HashMap<Integer, String> map2 = new HashMap<>();map2.put(1,"黄晓明");map2.put(2,"杨颖");map2.put(3,"刘德华");// 2.创建存放map集合的list集合ArrayList<HashMap<Integer, String>> list = new ArrayList<>();list.add(map1);list.add(map2);// 3.先遍历list集合,再遍历map集合for (HashMap<Integer, String> map : list) {Set<Map.Entry<Integer, String>> set = map.entrySet();for (Map.Entry<Integer, String> entry : set) {System.out.println(entry.getKey() + " " + entry.getValue());}}} }
3.Map嵌套Map
JavaSE集合存储的是 学号 键,值 学生姓名
1 张三 2 李四
JaVaEE集合存储的是 学号 键,值 学生姓名
1 王五 2 赵六
import java.util.HashMap; import java.util.Map; import java.util.Set;// JavaSE集合存储的是 学号 键,值 学生姓名 // 1 张三 // 2 李四 // JaVaEE集合存储的是 学号 键,值 学生姓名 // 1 王五 // 2 赵六 public class Demo258MapInMap {public static void main(String[] args) {HashMap<Integer,String> map1 = new HashMap<>();map1.put(1, "张三");map1.put(2,"李四");HashMap<Integer,String> map2 = new HashMap<>();map2.put(1,"王五");map2.put(2,"赵六");HashMap<String,HashMap<Integer,String>> map = new HashMap<>();map.put("javase",map1);map.put("javaee",map2);Set<Map.Entry<String, HashMap<Integer, String>>> set = map.entrySet();for (Map.Entry<String, HashMap<Integer, String>> entry:set) {HashMap<Integer, String> hashMap = entry.getValue();Set<Integer> set1 = hashMap.keySet();for (Integer key : set1) {System.out.println(key+"..."+hashMap.get(key));}}} }
三、集合下 总结
1.Map集合
概述
双列集合的顶级接口
实现类
HashMap
特点:
① key唯一、value可重复、key重复会发生value覆盖
② 无序
③ 无索引
④ 线程不安全
⑤ 可以存null键null值
数据结构:哈希表
方法:
① V put(K key,V value) -> 添加元素,返回的是被覆盖的value
② V remove(Object key )-> 根据key删除键值对,返回的是被删除的value
③ V get(Object key) -> 根据key获取value
④ boolean containsKey(Object key) -> 判断集合中是否包含指定的key
⑤ Collection<V>values() -> 获取集合中所有的value,转存到Collecton集合中
⑥ Set<K>keySet() -> 将Map中的key获取出来,转存到Set集合中
⑦ Set<Map.Entry<K,V>> entrySet() -> 获取Map集合中的键值对,转存到Set集合中
LinkedHashMap
特点:
① key唯一、value可重复、key重复会发生value覆盖
② 有序
③ 无索引
④ 线程不安全
⑤ 可以存null键null值
数据结构:哈希表+双向链表
用法:和HashMap一样
map的key去重复过程
和set一样,重写hashCode和equals方法
2.红黑树相关集合
TreeSet
特点
① 对元素进行排序
② 不能存null
③ 无索引
④ 线程不安全
⑤ 元素唯一
数据结构:红黑树
构造
TreeSet() -> 构造一个新的空 set,该 set 根据其元素的自然顺序进行排序 -> ASCII
TreeSet(Comparator<? super E>comparator)构造一个新的空 TreeSet,它根据指定比较器进行排序TreeMap
特点
① 对key进行排序
② 不能存null
③ 无索引
④ 线程不安全
⑤ 元素唯一
数据结构:红黑树
构造
TreeMap() -> 使用键的自然顺序构造一个新的、空的树映射 -> ASCII
TreeMap(Comparator<? super E>commparator)构造一个新的、空的树映射,该映射根据给定比较器进行排序
3.Hashtable和Vector
Hashtable
特点
① key唯一,value可重复
② 无序
③ 无索引
④ 线程安全
⑤ 不能存null键null值
和HashMap的区别
① 相同点:元素无序,无索引,key唯一
② 不同点:HashMap线程不安全,Hashtable线程安全,HashMap可以存储null键null值,Hashtable不能存储null键null值Vector
特点
① 元素有序
② 元素可重复
③ 有索引
④ 线程安全
数据结构:数组
原理
a.如果用空参构造创建对象,数组初始容量为10,如果超出范围,自动扩容2倍
b.如果用有参构造创建对象,如果超出了范围,自动扩容,扩的是老数组长度+指定的容量增强4.Properties属性集
特点
① key唯一,value可重复
② 无序
③ 无索引
④ 线程安全
⑤ 不能存null键null值
⑥ Properties的key和value类型默认为String
特有方法
① Object setProperty(string key, String value) -> 存键值对
② String getProperty(String key) -> 根据key获取value的
③ Set<String>stringPropertyNames() -> 获取所有的key,保存到set集合中,相当于keySet方法
④ void load(InputStream inStream) -> 将流中的数据加载到Properties集合中(IO部分讲)数据结构:哈希表
相关文章:
重学java 59.Properties属性集集合嵌套集合下总结
不要咀嚼小小悲观,而忘掉整个世界 —— 24.6.3 一、Properties集合(属性集) 1.概述 Properties 继承 于HashTable 2.特点 a、key唯一,value可重复 b、无序 c、无索引 d、线程安全 e、不能存null键,null值 f、Propertie…...
Kafka系列之高频面试题
基础 简介 特点: 高吞吐、低延迟:kafka每秒可以处理几十万条消息,延迟最低只有几毫秒,每个Topic可以分多个Partition,Consumer Group对Partition进行Consumer操作可扩展性:Kafka集群支持热扩展持久性、可…...
SIP通话分析
20240603 - 引言 分析SIP协议的时候,发现了几个问题。虽然说,从整体上来看这个SIP的通话流程也没麻烦,实际上从RFC的概述部分就已经基本上就已经了解了全貌。但在实际的场景中,很多字段起到的作用就不太一样了。 虽然一开始的时…...
【SVG 生成系列论文(九)】如何通过文本生成 svg logo?IconShop 模型推理代码详解
SVG 生成系列论文(一) 和 SVG 生成系列论文(二) 分别介绍了 StarVector 的大致背景和详细的模型细节。SVG 生成系列论文(三)和 SVG 生成系列论文(四)则分别介绍实验、数据集和数据增…...
有哪些兼职软件一天能赚几十元?盘点十个能长期做下去的挣钱软件
在当今这个信息泛滥的时代,众人纷纷寻求迅速致富的捷径。许多人在从事兼职或副业时,并不期望取得巨大的成就,只要每天能额外收入数十元,便已心满意足。 今天,我将带领大家深入探究,揭开那些隐藏在日常生活…...
ubuntu 22.04配置静态ip
ubuntu 22.04配置静态ip vim /etc/netplan/01-network-manager-all.yaml# Let NetworkManager manage all devices on this system network:renderer: NetworkManagerethernets:enp4s0f1:addresses:- 192.168.1.18/24dhcp4: falseroutes:- to: defaultvia: 192.168.1.1nameser…...
C++ 使用 nlohmann/json 库
C常用 json 库有: Jsoncpp boost ison Qt Json (不推荐使用) nlohman::json (推荐使用) 其中Qt中json解析的相关类只在qt中有用,为了避免以后不用qt无法解析json,建议使用nlohmann/json,适用于任何C框架。 1. 简介 nlohmann是一…...
【Java面试】六、Spring框架相关
文章目录 1、单例Bean不是线程安全的2、AOP3、Spring中事务的实现4、Spring事务失效的场景4.1 情况一:异常被捕获4.2 情况二:抛出检查异常4.3 注解加在非public方法上 5、Bean的生命周期6、Bean的循环引用7、Bean循环引用的解决:Spring三级缓…...
【GIC400】——PLIC,NVIC 和 GIC 中断对比
文章目录 PLIC,NVIC 和 GIC 中断对比中断向量表PLIC中断向量表中断使能中断服务函数NVIC中断向量表中断使能中断服务函数GIC中断向量表系列文章 【ARMv7-A】——异常与中断 【ARMv7-A】——异常中断处理概述...
17.Redis之主从复制
1.主从复制是怎么回事? 分布式系统, 涉及到一个非常关键的问题: 单点问题 单点问题:如果某个服务器程序, 只有一个节点(只搞一个物理服务器, 来部署这个服务器程序) 1.可用性问题,如果这个机器挂了,意味着服务就中断了~ 2.性能/支持的并发量也是比较有限…...
计算机类专业应该怎么选学校和方向?优先选这些!
👆点击关注 获取更多编程干货👆 高考季临近,不少有意向报考计算机专业的同学在为院校和细分专业的选择而苦恼,以下是一些建议,希望能帮到大家! 01 选校建议 在选择计算机科学(CS)…...
Amazon云计算AWS(二)
目录 三、简单存储服务S3(一)S3的基本概念和操作(二)S3的数据一致性模型(三)S3的安全措施 四、非关系型数据库服务SimpleDB和DynamoDB(一)非关系型数据库与传统关系数据库的比较&…...
实战
自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 实战一:大乐透号码生成器 使用Random模块模拟大乐透号码生成器。选号规则为:前区在1~35的范围内随机产生不重复的…...
【C++】vector模拟实现
🔥个人主页: Forcible Bug Maker 🔥专栏: STL || C 目录 前言🔥vector需要实现的接口函数🔥vector的模拟实现swap交换默认成员函数迭代器接口reserve和resizesize和capacityoperator[ ]下标获取push_back和…...
生成随机图片
package com.zhuguohui.app.lib.tools;/*** Created by zhuguohui* Date: 2024/6/1* Time: 13:39* Desc:获取随机图片*/ public class RandomImage {// static final String url "https://picsum.photos/%d/%d?random%d";static final String url "https://…...
回溯算法常见思路
回溯问题 回溯法,一般可以解决如下几种问题: 组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集排列问题:N个数…...
AR眼镜定制开发_在AR眼镜中实现ChatGPT功能
AR眼镜定制方案中,需要考虑到强大的算力、轻巧的设计和更长的续航时间等基本要求。然而,AR眼镜的设计方案不仅仅需要在硬件和显示技术方面取得突破,还要在用户体验方面有所进展。 过去,由于造价较高,AR眼镜的普及和商业…...
手写防抖debounce
手写防抖debounce 应用场景 当需要在事件频繁触发时,只执行最后一次操作,可以使用防抖函数来控制函数的执行频率,比如窗口resize事件和输入框input事件; 这段代码定义了一个名为 debounce 的函数,它接收两个参数:fn…...
anaconda pycharm jupter分别是
Anaconda Anaconda是一个面向数据科学的Python发行版,它包含了Python解释器、conda包管理器、以及大量的科学计算和数据分析库。Anaconda的主要功能是提供一个易于管理的环境,用于安装、运行和更新Python包,同时支持创建和切换不同的Python环…...
【JMeter接口自动化】第3讲 Jmeter语言及外观配置
Jmeter语言配置 方法一:暂时生效,下次打开JMeter还会恢复默认配置 Jmeter安装后,默认语言是英文,可以在“选项”——“选择语音”中更改 方法二,修改配置文件,永久生效 修改jmeter.properties文件 Jmete…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...


