重学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部分讲)

        数据结构:哈希表

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

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

相关文章

AI 赋能前端 -- 文本内容概要生成

幸福不在于你获得了什么,而在于你比他人多获得了什么 是比较出来的 大家好,我是柒八九。一个专注于前端开发技术/Rust及AI应用知识分享的Coder 此篇文章所涉及到的技术有 OpenAILangChainRust/WebAssemblyWeb Workerreact+ts+vite配置环境变量(env)因为,行文字数所限,有些概…

前端将DOM元素导出为图片

前端工作中经常会用到把一些元素导出&#xff0c;比如表格&#xff0c;正好项目有遇到导出为excel和导出为图片&#xff0c;就都封装实现了一下&#xff0c;以供其他需求的开发者使用&#xff1a; 1.导出为文档 这个说白了就是下载的功能&#xff0c;传过去检索参数&#xff…

小熊家务帮day10- 门户管理

门户管理 1 门户介绍1.1 介绍1.2 常用技术方案 2 缓存技术方案2.1 需求分析2.1.1 C端用户界面原型2.1.2 缓存需求2.1.3 使用的工具 2.2 项目基础使用2.2.1 项目集成SpringCache2.2.2 测试Cacheable需求Service测试 2.1.3 缓存管理器&#xff08;设置过期时间&#xff09;2.1.4 …

使用软件分享--剪映(不需要会员版)剪映 Jianying_pro_3_2_0_8778_beta9_jianyingpro_beta(Windows)

专栏介绍&#xff1a;本专栏主要分享一些实用的软件&#xff08;Po Jie版&#xff09;&#xff1b; 声明1&#xff1a;软件不保证时效性&#xff1b;只能保证在写本文时&#xff0c;该软件是可用的&#xff1b;不保证后续时间该软件能一直正常运行&#xff1b;不保证没有bug&am…

关于网络编程

目录 1、InetAdress类 2、Socket套接字 3、UDP数据报套接字编程 &#xff08;1&#xff09;DatagramSocket 类 &#xff08;2&#xff09;DatagramPacket类 &#xff08;3&#xff09;处理无连接问题 UdpEchoServer.java UdpEchoClient.java 4、TCP流套接字编程 &…

机器学习之数学基础(六)~时间复杂度和空间复杂度

目录 算法背景 background 1. 时间复杂度 Time Complexity 1.1 时间复杂度分类 1.1.1 O(1) 常数阶 1.1.2 O(n) 线性阶 1.1.3 O(n^2) 平方阶 1.1.4 O(logn) 对数阶 1.1.5 O(nlogn) 线性对数阶 1.1.6 O(2^n) 指数阶 1.1.7 O(n!) 阶乘阶 1.1.8 时间复杂度分类 1.2 时…

基于FPGA的SystemVerilog练习

文章目录 一、认识SystemVerilogSystemVerilog的语言特性SystemVerilog的应用领域SystemVerilog的优势SystemVerilog的未来发展方向 二、流水灯代码流水灯部分testbench仿真文件 三、用systemVerilog实现超声波测距计时器测距部分led部分数码管部分采样部分顶层文件引脚绑定效果…

华为昇腾310B初体验,OrangePi AIpro开发板使用测评

0、写在前面 很高兴收到官方的OrangePi AIpro开发板测试邀请&#xff0c;在过去的几年中&#xff0c;我在自己的博客写了一系列有关搭载嵌入式Linux系统的SBC&#xff08;单板计算机&#xff09;的博文&#xff0c;包括树莓派4系列、2K1000龙芯教育派、Radxa Rock5B、BeagleBo…

001----flask

flask---001 flask与django对比今日概要问答今日详细1.flask快速使用1.2 快速使用flask1.3 用户名密码登录 flask与django对比 django是个大而全的框架&#xff0c;flask是一个轻量级的框架。 django内部为我们提供了非常多的组件&#xff1a;orm/session/cookie/admin/from/mo…

mysql 分区

目标 给一个表&#xff08;半年有800万&#xff09;增加分区以增加查询速度 约束 分区不能有外键否则会报错 https://blog.csdn.net/yabingshi_tech/article/details/52241034 主键 按照时间列进行分区 https://blog.csdn.net/winerpro/article/details/135736454 参看以…

时序预测 | Matlab灰色-马尔科夫预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab灰色-马尔科夫预测 灰色马尔科夫预测&#xff08;Grey-Markov Prediction&#xff09;是一种用于时间序列预测的方法&#xff0c;它结合了灰色系统理论和马尔科夫链模型。灰色系统理论是一种非参数化的预测方法…

[vue2项目]vue2+supermap[mapboxgl]+天地图之地图的初始化

Supermap参考教程 天地图 一、安装 1、终端:npm install supermap/vue-iclient-mapboxgl 2、在package.json文件的dependencies查看supermap/vue-iclient-mapboxgl依赖是否安装成功。 3、在mian.js全局引入 import VueiClient from supermap/vue-iclient-mapboxgl; Vue.use(…

研学活动报名收集材料怎么写?教程来了!

研学活动作为学校教育的重要组成部分&#xff0c;不仅能够拓宽学生的视野&#xff0c;还能促进家校沟通。学生们报名还是十分积极踊跃的&#xff0c;然而研学活动报名收集材料该怎么写却困扰着不少老师&#xff0c;其实只需要把姓名和联系方式等收集全就可以了&#xff0c;主要…

typescript --object对象类型

ts中的object const obj new Object()Object 这里的Object是Object类型&#xff0c;而不是JavaScript内置的Object构造函数。 这里的Object是一种类型&#xff0c;而Object()构造函数表示一个值。 Object()构造函数的ts代码 interface ObjectConstructor{readonly prototyp…

UMG绝对坐标与局部空间

在 Unreal Engine 的 UMG&#xff08;Unreal Motion Graphics&#xff09;中&#xff0c;“绝对坐标”和“局部空间”是两个常见的概念&#xff0c;主要用于描述 UI 元素的位置和大小。 概念与区别 绝对坐标&#xff08;Absolute Coordinates&#xff09;&#xff1a;这是指相…

[数据集][目标检测]RSNA肺炎检测数据集VOC+YOLO格式6012张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;6012 标注数量(xml文件个数)&#xff1a;6012 标注数量(txt文件个数)&#xff1a;6012 标注…

彩光大放异彩!《智慧园区以太全光网络建设技术规程》应用案例征集活动结果公布

近日,中国建筑业协会绿色建造与智能建筑分会正式公布了《智慧园区以太全光网络建设技术规程》应用案例征集活动的结果。本次活动旨在推广和应用该规程,进一步推动智慧园区的数字化、智慧化、绿色化建设。众多优秀项目在征集活动中脱颖而出,展示了规程在实际应用中的显著成效。评…

如果任务过多,队列积压怎么处理?

如果任务过多,队列积压怎么处理? 1、内存队列满了应该怎么办2、问题要治本——发短信导致吞吐量降低的问题不能忽略!!3、多路复用IO模型的核心组件简介1、内存队列满了应该怎么办 如图: 大家可以看到,虽然现在发短信和广告投递,彼此之间的执行效率不受彼此影响,但是请…

vue3+typescript 使用Codemirror

安装 // npm npm install codemirror-editor-vue3 codemirror^5.65.12// ts版 还需安装&#xff1a; npm install types/codemirror全局注册 修改main.ts&#xff1a; import { createApp } from vueimport App from ./App.vueimport { InstallCodemirro } from "code…

M-G364PD惯性测量单元:相机及微小层面的革命性应用

在现代科技飞速发展的今天&#xff0c;精准控制和精确测量是众多高端设备实现卓越性能的关键。爱普生推出的M-G364PD惯性测量单元&#xff08;IMU&#xff09;&#xff0c;因其卓越的性能和微小尺寸&#xff0c;成为相机以及其他微小层面应用的理想选择&#xff0c;为科技创新提…