[零基础学JAVA]Java SE应用部分-35.JAVA类集之四

Java知识总结--SE篇 1-1-什么是Java的跨平台原理 Java通过不同的系统,不同的版本不同的位数的Java虚拟机(JVM)来屏蔽不同的指令集,然后对外提供了统一的Java接口(API),这样,我们的开发者只需按照接口开发即可,如果系统需要部署在不同的环境是,只需要系统上面按照片对应版本的虚拟机即可 1.2-Java基本数据类型 1.3-Java基本类型所占字节和范围 1.3-int(long) 和 float(double) 哪个表示的范围大?为什么? float表示的 范... 阅读详情

1、类集结构

(1)类集的产生目的

类集简单来讲就是一个动态的对象数组,此对象数组可以改变大小,可以任意的实现对象的增加、删除、输出。所有的类集存放java.util包中。

(2)类集的划分

1、存放单值:Collection

2、存放一对值:Map

3、输出:Iterator

(3)类集的具体概念

<1>Collection(只能存放一个值)

|- 主要功能:用于输出使用

|- 子接口:List(允许有重复的元素,而且加入的顺序就是输出的顺序)

|- 子类:ArrayList,是在Java 2之后推出的,是新的类,是使用异步处理方式,其性能较高

|- 子类:Vector,是在JDK 1.0的时候就推出,因为是旧的类,有很多List所没有的功能,是使用同步处理方式,其线程安全性较高,会比较慢。使用Vector除了可以使用Iterator输出之外,也可以使用Enumeration进行输出。两者是通用的。Vector子类允许直接使用addElement(Object obj),也是可以向集合中加入元素的。

|- 自己新增的方法:

|- 取每一个对象:public Object get(int ind) ;

|- 子类:Stack(栈)

|- 子接口:Set(不允许有重复元素,重复元素会替换)?如何可以区分重复元素呢?

|- 子类:HashSet:是无序列存放

|- 子类:TreeSet:有序存放,是通过Comparable接口完成的

|- 常用方法:

|- 增加一个对象:public boolean add(Object obj)

|- 取得类集的长度:public int size() ;

|- 判断集合中的内容是否为空:public boolean isEmpty()

|- 删除一个对象:public boolean remove(Object obj) :就必须牵扯到对象的比较状态。

|- 实例化Iterator对象:public Iterator iterator() ;

<2>JDK 1.5提供了一个方便的输出操作:for…each语句。

<3>Iterator接口输出是最常见的

|- 常用方法

|- public boolean hasNext():判断是否有下一个元素

|- public Object next():取出下一个元素

|- 子接口:ListIterator,可以进行双向输出,只对于List接口有用

|- 常用方法:具备了Iterator接口中的全部内容

|- public boolean hasPrevious()

|- public Object previous()

<4>Enumeration(在1.5之后也加入、泛型支持哈~)

|- 常用方法:

|- 判断是否有下一个元素:public boolean hasMoreElements()

|- 取出元素:public Object element()

5、 Map(存放一对值)

|- 功能:与Collection的功能不一样,Map的主要功能是用于查找使用的。

|- 注意点:

|- 使用Map操作时,不能直接使用Iterator进行输出。

|- 而且里面不能有重复key。

|- 如果非要使用Iterator进行输出,则必须按以下的步骤进行操作:

|- Map --> Set --> Iterator --> Map.Entry --> key与value的分离

|- 常用子类:

|- HashMap:无序存放,是新的类,是JDK 1.2时推出的,是异步处理,性能较高

|- Hashtable:是旧的类,是JDK 1.0时推出的,是线程安全的,性能较低

|- Properties(重点):属性文件操作类

|- TreeMap:有序存放

|- 常用方法:

|- 向集合中保存数据:public Object put(Object key,Object value):返回的是value

|- 从集合中查找数据:public Object get(Object key):根据key查找。

|- 将Map数据变为Set实例:Set<Map.Entry<K,V>> entrySet()

|- 将全部的key变为set实例:Set<K> keySet()

|- 将全部的vlaue变为Collection接口实例:Collection<V> values()

|- Map.Entry:保存key与value

|- public Object getKey()

|- public Object getValue()

|- 存放key的注意点:

################Michael分割线####################

2、代码讲解

(11)HashMap

Map的基本应用

 

如果查到了,则返回具体的值,如果没有查到,则返回null

 

使用Iterator输出Map接口中的内容

 

HashSet:是无序列存放滴~~~

 

将全部的key进行输出

 

 

输出全部的值

 

 

(12)Hashtable

 

 

(13)TreeMap

按key进行排序,本操作中依然使用了Comparable接口。

 

TreeSet:有序存放,是通过Comparable接口完成的

 

(14)Stack

入栈:public Object push(Object obj)

出栈:public Object pop()

注意点:如果此时栈中已经没有内容了,则会出现异常。

 

 

(15)Properties(重点)

· 属性操作类,所有的key 与value 都按属性设置,都是字符串。而且此属性文件可以直接保存在文件中,或从文件中读取出来。

设置属性:public Object setProperties(String key,String value)

取得属性:

|- public String getProperty(String key) :根据key读取属性,返回值

|- public String getProperty(String key,String def) :如果没有读到值,则返回def指定的内容。

保存在文件中:

|- 保存成普通文件:public void store(OutputStream out,String comments) throws IOException

|- 保存成XMl文件:public void storeToXML(OutputStream out,String comments) throws IOException

从文件中读取属性:

|- 从普通文件中读取:public void load(InputStream input) throws IOException

|- 从XML文件中读取:public void loadFromXML(InputStream input) throws IOException

 

 

将内容保存成普通文件:

 

 

将内容保存为XML文件:

 

 

从XML文件中把属性读取出来

 

 

(16)Map重要补充

 

 

以上的程序可以通过key找到value。

现在把代码反过来

 

 

代码反过来之后,发现没有得到真正想要的内容,而是返回了null。

 

 

此时如果要通过匿名对象来当作key,找到属性的话,就必须牵扯到Object中的几个方法:

· 对象比较:

· 通过hashCode;

 

 

Java中是通过equals和hashCode方法去确认对象唯一性,可以进行比较。

但是以上的程序需要一点更改,因为不能让所有对象的hashCode方法的返回值都是一样的,所以可以经过一些自己简单的运算。

 

 

一个完整的类最好覆写Object类中的三个方法:

· hashCode

· equals

· toString

(17)额外补充(对象克隆)

就是把对象的内容重新复制一份,复制出一个新的对象

protected Object clone() throws CloneNotSupportedException

克隆方法是一个受保护的方法。所以在其需要对象被克隆的子类中必须扩大权限,否则外部无法看见。

对象所在的类必须实现Cloneable接口

Java程序中常用的有两大标识接口:

· 可序列化:Serializable

· 可克隆:Cloneable

 

 

总结

就是向里面不断加入元素,可以动态的扩充,而且可以有存放单值的,也可以有存放一对值的。

而且在集合中对于排序,使用的是Comparable接口。

实例的模型很重要 —— Hibernate、EJB 3.0

欢迎工作一到五年的Java工程师朋友们加入Java架构师:697558955

群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

Ferromagnetic soft continuum robots 本文来自机器人领域顶刊,Science Robotics。介绍了一种铁磁软连续体机器人,主要贡献为1)介绍了一个基于磁性微粒和聚合物的软连续体机器人的制造方法,在机器人外表面涂了一层水凝胶,极大地降低了摩擦阻力;2)并研究了在磁场下,不同粒子体积分数下,此机器人的驱动性能;利用手动操控的磁铁,进行了许多实验证明该机器人性能的优异性。 铁磁软连续体机器人 Ferromagnetic soft continuum robots [1] Paper Link Authors: Kim, Yoonho, et al 阅读详情

相关推荐

Cadence Virtuoso实战:NMOS差分放大器设计与SPICE仿真全解析

本文详细解析了使用Cadence Virtuoso设计NMOS差分放大器并进行SPICE仿真的全流程。从基础设计要点、原理图绘制到工作点分析与性能调优,提供了实用的设计技巧和常见问题解决方案,帮助工程师高效完成模拟集成电路设计。重点介绍了差分放大器的关键参数设置、饱和区优化及版图设计注意事项,适用于ADC、DAC等高性能电路开发。

weixin_28340315的博客 611

throws IOException

public class MyServer { // 定义保存所有Socket的ArrayList public static ArrayList socketList = new ArrayList();     public static void main(String[] args) throws IOException     { ServerSocket ss = ne

lzllzl1993的专栏 3749

FDTD仿真实战:从材料导入到反射率曲线分析

本文提供了一份完整的FDTD仿真实战指南,详细讲解了从自定义材料(如WO3)数据导入、结构建模、仿真区域与网格设置,到光源与监视器配置、运行仿真并提取反射率数据的全流程。重点解决了材料库缺失、网格优化、边界条件设置等常见难题,旨在帮助研究人员高效、准确地通过FDTD仿真获取材料的关键光学特性——反射率曲线。

elastic6hunter的博客 341

【安卓学习笔记】JAVA基础-类集框架

集合的种类类集框架的基础结构什么是类集框架1、类集框架是一组类的接口;2、位于java.util包当中;3、主要用于存储和管理对象;4、主要分为三大类:集合、列表和映射集合(set)集合中的对象不安特定的方式排序,并且没有重复对象列表(list)集合中对象按照索引位置败絮,可以有重复的对象映射(map)集合中的每个元素包含一个键对象和一个值对象,键不可以重复,值可以重复Interator &lt;...

冯宇的博客 287

热测试芯片(TTC)在ASIC热设计中的关键作用与应用

热测试芯片(TTC)是半导体热管理领域的重要工具,通过物理仿真技术精确测量芯片温度分布。其核心原理是利用金属膜电阻和二极管传感器阵列,实现微米级空间分辨率和毫秒级动态响应。在工程实践中,TTC能有效预防热岛效应、优化散热设计,特别适用于AI加速芯片、3D堆叠封装等先进半导体器件。相比传统热仿真软件,TTC提供更真实的温度数据,帮助工程师在流片前发现潜在热问题。随着1mm微型单元技术的突破,TTC已能检测0.3mm²微小区域的热变化,满足GaN/SiC等宽禁带半导体器件的测试需求。

weixin_33688840的博客 509

医疗大模型实战——从零构建MedicalGPT全流程解析

本文详细解析了从零构建医疗大模型MedicalGPT的全流程实战。基于Qwen-7B模型与约195万条中文医疗数据,完整复现了增量预训练、监督微调与偏好对齐三大核心环节,并分享了如何在有限硬件资源下实现高效训练与部署,为开发者提供了可复现的医疗AI项目实战指南。

weixin_29193259的博客 553

基于MP2642GR-Z与STM32G070RB的两串电池主动均衡方案设计与实现

电池均衡是BMS的核心技术之一,主动均衡通过能量转移替代被动均衡的电阻放电,显著提升能量利用率和均衡速度。其原理基于双向Buck-Boost变换器,将高电压电芯能量转移至低电压电芯,效率可达90%以上。在储能与备用电源系统中,主动均衡能有效延长电池组寿命、增加可用容量并降低温升。针对两串锂电场景,MP2642GR-Z集成双半桥驱动,配合STM32G070RB实现电压采集、PWM调节与保护逻辑,均衡电流可达1A以上。本文深入解析该方案的硬件设计、软件策略与实测数据,为便携储能、家庭储能及小型UPS提供可落地的

weixin_33924312的博客 308

别再只怪贴片厂了!从MLCC内部裂纹,看懂物料质量与工艺应力的博弈

本文深入分析了MLCC内部裂纹的失效原因,提供了从裂纹形态学到生产全流程的失效风险地图的完整分析框架。通过实战案例和检测技术组合,帮助工程师精准锁定MLCC失效背后的真凶,优化物料质量和工艺应力管理。

weixin_33122947的博客 293

[零基础学JAVA]Java SE应用部分-35.JAVA类集之二

JAVA按以下重要顺序· 面向对象 · 类集框架 · JDBC · 文件编程 本季目标 主要讲解以下的内容:· Collection · List · Set · Map · Iterator · ListIteator · Enumeration · for…each语句(JDK 1.5的新特性) · Comparable...

weixin_33704234的博客 101

使用 MATLAB/Simulink 搭建一个步进电机细分控制系统的仿真模型

步进电机(Stepper Motor)是一种将电脉冲信号转换为角位移或线位移的执行元件,广泛应用于数控机床、3D打印、机器人、精密仪器等领域。其特点是开环控制、定位精度高、响应快、无累积误差。然而,传统步进电机在整步或半步运行时存在振动大、噪音高、转矩波动明显等问题。为了解决这些问题,细分控制技术被广泛采用。细分控制通过对绕组电流进行精确控制,使转子在两个整步之间实现平滑移动,从而提升电机的运行平稳性和位置精度。本教程将带你使用搭建一个步进电机细分控制系统的仿真模型,并通过仿真分析其。

amy_mhd的博客 427

coredump文件的原理是啥

Core Dump(核心转储)是操作系统在程序崩溃(如段错误、非法指令等)时自动生成的一个文件,它包含了程序崩溃瞬间的。通过 core dump,开发者可以像“时间回溯”一样检查程序崩溃瞬间的状态,是调试复杂问题的利器!终止时,Linux 内核会生成 core 文件。不会生成 core dump,因为它们是“优雅终止”信号。这样 core 文件会直接压缩存储,节省磁盘空间。的文件(类似可执行文件),可以用。Core 文件本质上是一个。

二进制君 383

[零基础学JAVA]Java SE应用部分-35.JAVA类集之一

JAVA按以下重要顺序 · 面向对象 · 类集框架 · JDBC · 文件编程 本季目标 主要讲解以下的内容: · Collection · List · Set · Map · Iterator · ListIteator · Enumeration · for…each语句(JDK 1.5的新特性) · Comparable接口 · 二叉树 1、类集结构 (1)类...

weixin_33701294的博客 81

华为OD机试双机位C卷-用户入网定期复评(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【用户入网定期复评】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【用户入网定期复评】。

qq_45776114的博客 837

[零基础学JAVA]Java SE应用部分-35.JAVA类集之三

JAVA按以下重要顺序 · 面向对象 · 类集框架 · JDBC · 文件编程 本季目标 主要讲解以下的内容: · Collection · List · Set · Map · Iterator · ListIteator · Enumeration · for…each语句(JDK 1.5的新特性) · Comparable接口 · 二叉树 1、类集结构 (1)类集的产生目的 类集简...

weixin_34144450的博客 133

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: Java并发编程40道面试题及答案——面试稳了
下一篇: 谈谈Java工程师的学习
普通网友
博客等级 码龄8年 15粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值