Java 容器 总结

手把手教你用示波器搞定PCIe 5.0 REFCLK时钟信号测量(附完整参数解读) 本文详细介绍了如何使用示波器进行PCIe 5.0 REFCLK时钟信号测量,包括示波器与探头的选择、关键参数的测量方法及解读,以及实战中的常见问题与解决方案。通过手把手教学和完整参数解读,帮助硬件工程师高效完成时钟信号测量,确保系统稳定性。 阅读详情

【1-1.容器的感念】:
Java API 所提供的一系列类的实例,用于在程序中存放对象。

*****************************************************************************
【1-2.容器API】
J2SDK 所提供的容器API 位于java.util包内
容器API的类图机构如下:

Collection
Set List Map
HashSet LinkedList ArrayList HashMap
**********************************************************
*Set (没有顺序不可以重复)
*List(有顺序,可以重复<equals>)
*Map(存储"键(key)——值(value)映射对"的方法,2个2个往里装)
**********************************************************
*如何选择数据结构*
衡量标准:读的效率和改的效率

* Array读快改慢
* Linked改快读慢
* Hash两者之间
*****************************************************************************
【1-3.Collection接口】
Collection接口中所定义的方法:
int size(); 放了多少个元素
boolean isEmpty(); 是否为空
void clear(); 清空
boolean contains(Object element); 是不是包含指定的某个对象元素(equals)
boolean add(Object element); 添加
boolean remove(Object element); 去除
Iterator iterator();
boolean containsAll(Collection c); 是不是包含所有元素
boolean addAll(Collection c);
boolean removeAll(Collection c);
boolean retainAll(Collection c); 集合类的交集
Object[] toArray(); 里面的对象转换为一个对象类型的数组

------------------------------------------------------------------------
容器类对象在调用remove、contains等方法时需要比较对象是否相等,这会涉及到
对象类型的equals方法 和hashCode方法;对于自定义的类型,需要要重写equals
和hashCode方法以实现自定义的对象相等规则。
【注意】:相等的对象应该具有相等的hash codes。
例子如下:
import java.util.*;
public class Test{
public static void main(String[] args){
Collection c = new HashSet();
c.add("Hello");
c.add(new Name("f1","l1"));
c.add(new Integer(100));
c.remove("Hello");
c.remove(new Integer(100));
System.out.println(c.remove(new Name("f1","l1")));
System.out.println(c);
}
}


class Name{
private String firstName,lastName;
public Name(String firstName, String lastName){
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName(){
return firstName;
}
public String getLastName(){
return lastName;
}
public String toString(){
return firstName + " " + lastName;
}

public boolean equals(Object obj){
if(obj instanceof Name){
Name name = (Name) obj;
return (firstName.equals(name.firstName))&&(lastName.equals(name.lastName));
}
return super.equals(obj);
}

public int hashCode(){
return firstName.hashCode();
}
}
*****************************************************************************
【1-4.lterator接口】 ====> 就是一个统一的,来遍历Collection里面所有元素的方法,

Iterator对象的remove方法是在迭代过程中删除元素的唯一安全方法。

所有实现了Collection 接口的容器类都有一个iterator方法用以返回一个
实现了Iterator接口的对象
Iterator对象称作迭代器,用以方便的实现对容器内元素的遍历操作
Iterator接口定义了如下方法:
boolean hasNext(); //判断游标右边是否有元素
Object next(); //返回游标右边的元素并将游标移动到下一个位置
void remove(); //删除游标左面的元素,在执行完next之后,该操作只能执行一次
*****************************************************************************
【1-5.增强的for循环】
JDK 1.5增强的for循环,

增强的for循环对于遍历array 或 Collection 的时候相当简单

缺陷:
数组:不能方便的访问下标值
集合:与使用Iterator(可以调用remove方法)相比,不能方便的删除集合中的内容
在内部也是调用Iterator
总结:除了简单遍历并读出其中的内容外,不建议使用增强for循环

例如:

import java.util.*;
public class EnhancedFor{
public static void main(String[] args){
int[] arr = {1,2,3};
for(int i : arr){
System.out.println(i);
}
Collection c = new ArrayList();
c.add(new String("aaa"));
c.add(new String("bbb"));
c.add(new String("ccc"));
for(Object o : c){
System.out.println(o);
}
}
}

result:
1
2
3
aaa
bbb
ccc
*****************************************************************************
【1-6.Set接口】

Set接口是Collection 的子接口,Set接口没有提供额外的方法,但实现
Set接口的容器类中的元素是没有有顺序的,而且不可以重复。

Set容器可以与数学中的“集合”的概念相对应

J2SDK API中所提供的Set容器类有HashSet,TreeSet等
例如:
import java.util.*;
public class TestSet{
public static void main(String[] args){
Set s1 = new HashSet();
Set s2 = new HashSet();
s1.add("a");s1.add("b");s1.add("c");
s2.add("d");s2.add("a");s2.add("b");
//构造方法 用以初始化容器类
Set sn = new HashSet(s1);
sn.retainAll(s2);
Set su = new HashSet(s1);
su.addAll(s2);
System.out.println(sn);
System.out.println(su);
}
}
*****************************************************************************
【1-7.List接口 和 Comparable接口】

======1.List接口======

List接口是Collection的子接口,实现List接口的容器类中的元素是有顺序的,而且可以重复
List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。
J2SDK所提供的List容器类有ArrayList,LinkedList等

【List 常用算法】
类Java.util.Collections 提供了一些静态方法实现了基于List容器的一些常用算法。

void sort(List) 对List容器内的元素排序
void shuffle(List) 对List容器内的对象进行随机排列
void reverse(List) 对List容器内的对象进行逆序排列
void fill(List, Object) 用一个特定的对象重写整个List容器
void copy(List dest,List src) 将src List容器内容拷贝到dest List容器
int binarySearch(List, Object)对于顺序的List容器,采用折半查找的方法查找特定的对象

=====2.Comparable接口=====

所有可以"排序"的类都实现了Java.lang.Comparable 接口,Comparable接口
中只有一个方法:
public int CompareTo(Object obj); 该方法:

返回0 表示 this == obj
返回正数表示 this > obj
返回负数表示 this < obj

实现了Comparable接口的类通过实现 comparaTo 方法从而确定该类对象的排序方式。
*****************************************************************************
【1-8.Map 接口】

实现Map接口的类用来存储 键—>值 对。
Map接口的实现类有HashMap(Hash索引)和TreeMap(Tree索引)等。
Map类中存储的键—>值对通过键来标识,所以键值不能重复(互相必须equals,但是效率太低,所以要用hashCode,返回值int类型)。

【在JDK1.5以后】可以直接这样写:
Map m1 = new HashMap();
m1.put("one",1);

*****************************************************************************
【1-9.自动打包/解包】

Auto-boxing/unboxing

打包:自动将基础类型转换为对象
解包:自动将对象转换为基础类型

*************没有打包的程序*******************
Map m1 = new HashMap();
Map m2 = new TreeMap();
m1.put("one",new Integer(1));
m1.put("two",new Integer(2));
m1.put("three",new Integer(3));
m2.put("A",new Integer(1));
m2.put("B",new Integer(2));
System.out.println(m1.size());
System.out.println(m1.containsKey("one"));
System.out.println(m2.containsValue(new Integer(1)));
if(m1.containsKey("two")){
int i =((Integer)m1.get("two")).intValue();
System.out.println(i);
}
Map m3 = new HashMap(m1);
m3.putAll(m2);
System.out.println(m3);

*************自动打包以后的程序(泛型)**************
import java.util.*;
public class TestMap2{
public static void main(String[] args){
Map m1 = new HashMap();
Map m2 = new TreeMap();
m1.put("one",1);
m1.put("two",2);
m1.put("three",3);
m2.put("A",1);
m2.put("B",2);
System.out.println(m1.size());
System.out.println(m1.containsKey("one"));
System.out.println(m2.containsValue(1));
if(m1.containsKey("two")){
int i =(Integer)m1.get("two");
System.out.println(i);
}
Map m3 = new HashMap(m1);
m3.putAll(m2);
System.out.println(m3);
}
}

【1-10.泛型(JDK1.5新增)】
可以在定义Collection的时候指定
也可以再循环时用Iterator指定

泛型:增加程序的可读性和稳定性

import java.util.*;
public class BasicGeneric{
public static void main(String[] args){
List<String> c = new ArrayList<String>();
c.add("aaa");
c.add("bbb");
c.add("ccc");
for(int i=0; i<c.size(); i++){
String s = c.get(i);
System.out.println(s);
}

Collection<String> c2 = new HashSet<String>();
c2.add("aaa");c2.add("bbb");c2.add("ccc");
for(Iterator<String> it = c2.iterator(); it.hasNext();){
String s = it.next();
System.out.println(s);
}
}
}

-----------------------------------------
import java.util.*;
public class TestMap2{
public static void main(String[] args){
Map<String,Integer> m1 = new HashMap<String,Integer>();

m1.put("one",1);
m1.put("two",2);
m1.put("three",3);

System.out.println(m1.size());
System.out.println(m1.containsKey("one"));

if(m1.containsKey("two")){
//int i =(Integer)m1.get("two");
int i = m1.get("two");
System.out.println(i);
}

}
}

=====================总结第七章=========================

一个图,
一个类(Collection),
三个知识点:For Generic(泛型) Auto-boxing/unboxing,
六个接口
Collection
Set List Map
HashSet LinkedList ArrayList HashMap


lterator接口 ====> 就是一个统一的,来遍历Collection(集合)里面所有元素的方法

从Raw图像到超分辨率:真实场景下的图像增强全流程指南 通过本文的学习,您已掌握了利用Raw图像实现真实场景超分辨率的完整技术链——从数据生成的“真实感模拟”,到双分支CNN的“细节+色彩”协同建模,再到模型的训练与落地。本文将带您从理论到实践,掌握利用Raw图像实现真实场景超分辨率的核心技术,让您的图像在细节和色彩上都能“更上一层楼”。是相机传感器直接输出的原始数据,保留了最完整的亮度、色彩信息(如Bayer阵列的原始采样),这为超分辨率提供了“富矿级”的信息基础。该分支以低分辨率RGB图像为参考,学习“色彩变换矩阵”,让恢复的细节拥有真实的色彩表现。 阅读详情

相关推荐

DID实战指南:从平行趋势检验到PSM-DID的Stata全流程解析

本文详细解析了双重差分法(DID)在政策评估中的应用,从平行趋势检验到PSM-DID的Stata全流程操作。通过实例演示和代码示例,帮助研究者掌握DID方法的核心逻辑、前提条件验证及稳健性检验技巧,提升因果推断研究的准确性。

weixin_29234239的博客 742

JAVA常见容器

假设上面已经有了各个容器的继承关系,我们就顺着继承关系说一下各个接口或者类的特点吧。 Iterable 接口 Iterable是一个超级接口,被Collection所继承。它只有一个方法: Iterator&amp;lt;T&amp;gt; iterator() //即返回一个迭代器 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被...

weixin_42574142的博客 5万+

Drools vs URule:5个真实项目场景告诉你如何选择开源规则引擎

本文通过电商风控、物流计费、会员体系、保险定价和物联网告警五个真实项目场景,深度对比了Drools与URule两款开源规则引擎。分析了两者在规则复杂度、性能表现、开发运维及适用场景上的核心差异,为技术选型提供基于实战的决策指南。

k6l7m8n9的博客 945

Java容器有哪些?哪些是同步容器,哪些是并发容器?

Java容器有哪些?哪些是同步容器,哪些是并发容器?一、基本概念新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入...

u013030086的博客 6961

Aloudata 荣登“数智技术系列榜单”和“数据智能服务商 TOP30”

持续助力各行业数智化先进企业突破数据管理技术瓶颈,以更加敏捷、精准和可靠的数据交付驱动企业业务创新与经营提效

Aloudata的博客 668

告别轮询!用STM32CubeMX给STM32F030配置ADC多通道+DMA,实测代码分享

本文详细介绍了如何使用STM32CubeMX为STM32F030配置ADC多通道采集与DMA传输,显著提升采集效率。通过实测对比轮询与DMA模式的性能差异,提供完整的代码实现和优化技巧,帮助开发者快速掌握这一高效采集方案。

weixin_42570296的博客 410

java容器

这里写自定义目录标题java容器(Container)1.什么是容器2.java中三大容器3.java内置的容器类Collection set  *HashSet*  *LinkedHashSet*  *TreeSet* List  *ArrayList*   *Vector*  *LinkedList* Queue  *LinkedList*Map(用于映射(键值对)问题处理) HashMapHashTable  LinkedHashMap TreeMap4.容器体系图 java容器(Container)

qq_43111764的博客 1922

使用 AFL++ 对 IoT 二进制文件进行模糊测试 - 第一部分

American fuzzy lop 是一款面向安全的模糊测试器,它采用一种新型的编译时插桩和遗传算法,可以自动发现干净、有趣的测试用例,从而触发目标二进制文件中新的内部状态。这显著提高了模糊测试代码的功能覆盖率。AFL 的地址是它已经有一段时间没有更新了。虽然 AFL 仍然运行良好,但有一个新项目 AFL++,它是 AFL 的一个分支,包含许多改进和新功能。AFL++ 的地址是,其源代码位于。在本文中,我们将研究如何使用 AFL++ 对 IoT 二进制文件进行模糊测试。

技术超强的网络安全平台 1089

java容器都有哪些?

什么是容器? 容器是指用以容纳物料并以壳体为主的基本装置。摘自: 百度百科 java容器类类库的用途是"保存对象"。摘自: “Thinking in Java”. Java集合类是一种特别有用的工具类,可以用于存储数量不等的对象,并可以实现常用的数据结构,如栈,队列等.Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象) “丢进” 该容器中. 摘自: “疯狂Java讲...

老狼的博客 1万+

RT-DETR改进策略【RT-DETR和Mamba】| CVPR 2025:EfficientViM 压缩隐藏状态空间进行通道混合、单头设计减少内存操作,提升目标检测效率与精度

本文记录的是利用模块优化的目标检测网络模型。EfficientViM Block(基于隐藏状态混合器的状态空间对偶性模块) 的设计旨在,提升特征提取效率,同时兼顾全局依赖捕捉与局部细节保留。本文将深入研究的原理,并将其应用到中,通过重构特征提取流程、减少内存绑定操作、融合多阶段特征,增强模型在资源受限环境下的检测性能与速度。Depth Information Assisted Collaborative Mutual Promotion Network for Single Image DehazingLE

Limiiiing的博客 921

智能水下机器人设计: 基于MATLAB的水下机器人动力学建模和控制系统设计,包括水下环境感知、路径规划和任务执行等

智能水下机器人是指能够在水下自主完成各种任务的机器人,例如探测、勘察、救援等。它具有广阔的应用前景,可用于海洋环境监测、水下考古、海上作业等领域。基于MATLAB的水下机器人设计可以为科研人员和工程师提供强大的建模和仿真工具,帮助他们设计更智能、更高效的水下机器人。智能水下机器人是未来海洋科技发展的重要方向,它将为海洋科学研究、水下考古和海上作业等领域带来新的机遇。MATLAB是一种功能强大的数学和科学计算软件,它可以为智能水下机器人设计提供强大的工具和支持。

走向CTO的路上... 963

Java 容器

一、什么是容器&&为什么使用容器 我们在实际使用时,会使用到成千上万的数据。这些数据存储在内存中不是杂乱无章的,而是通过各种数据结构组织而成的。容器实际上就是存储数据的一块内存区域,使用容器实际上就是通过java标准库中定义的结构、方法来实现数据的存储以及操作。java就提供了很多容器,多个容器的数据结构不同。但是,结构不重要,重要的是能够存储东西,能够判断,获取把容器共性的内容不断往上提取,最终形成容器的继承体系---->Collection。 容器有哪些呢。容器分为三类Set、Li

weixin_44728238的博客 916

把核心变干净的代价与回报:为什么推动 Clean Core,几乎绕不开 SAP Integration Suite 与 API Management

Clean Core的核心价值在于构建可持续升级的ERP系统架构,其关键不在于减少代码或限制扩展,而是通过解耦和治理实现系统边界的清晰划分。这一理念将推动企业从传统的"私搭乱建"式集成向平台化工程转型,而SAP Integration Suite和API Management正是实现这一转型的核心组件。 Integration Suite作为集成中枢,通过统一平台、可复用内容库和事件驱动架构,将碎片化连接转变为标准化能力;API Management则负责建立接口治理体系,通过统一入口、

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 243

java容器:1、java中容器有哪些?

java容器:1、java中容器有哪些?

weixin_42924812的博客 1603

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Java语言的容器化

近年来,容器化技术在软件开发和部署领域中得到了广泛应用。随着云计算的崛起和微服务架构的流行,容器化不仅极大地简化了应用的部署和管理,还提高了应用的可移植性和弹性。Java作为一种历久弥新的编程语言,其容器化的需求也随之增长。本文将深入探讨Java语言的容器化,从基础知识、技术栈、实践案例到最佳实践,为读者提供一个全面的视角。

2501_91525731的博客 1401

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java 容器梳理

Java 的容器框架是语言的核心组成部分,为开发者提供了存储、操作和检索数据的强大工具。本文梳理Java 容器的基础知识、框架结构、核心机制及实用注意事项。

YT的博客 1601

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java 容器--同步容器和并发容器

Java 中的容器主要可以分为四个大类,分别是ListMapSet和Queue,但并不是所有的 Java 容器都是线程安全的。说到线程安全的问题,我们先来理解两个名词同步容器和并发容器。

qq_24907431的博客 1281

Java同步容器和并发容器

同步容器 在 Java 中,同步容器主要包括 2 类: Vector、Stack、HashTable Vector 实现了 List 接口,Vector 实际上就是一个数组,和 ArrayList 类似,但是 Vector 中的方法都是 synchronized 方法,即进行了同步措施。 Stack 也是一个同步容器,它的方法也用 synchronized 进行了同步,它实际上是继承于 ...

不喝枸杞的程序员 1843

Java 容器都有哪些

【代码】Java 容器都有哪些。

走过冬季 1073

什么是Java容器,有哪些常用的容器?

Java容器是用于存储和管理多个对象的数据结构。它提供了一种方便的方式来组织和操作数据。常用的Java容器包括以下几种: ArrayList:动态数组,可以根据需要自动调整大小。 LinkedList:双向链表,适用于频繁的插入和删除操作。 HashSet:无序集合,不允许重复元素。 TreeSet:有序集合,根据元素的自然顺序进行排序。 HashMap:无序键值对集合,通过键快速查找值。 TreeMap:有序键值对集合,根据键的自然顺序进行排序。

4万+

java安卓容器_java之容器

先来一张容器的API框架图,我们在java中所学的所有知识,都是根据下面这张图来学习的....容器API:1、Collection接口------定义了存储一组对象的方法,其子接口Set和List分别定义了存储的方式。①、Set中的数据对象没有顺序且不可以重复。②、List中的数据对象有顺序且可以重复。2、Map接口定义了存储“键(key)---值(value)映射对”的方法。Collection...

weixin_28955629的博客 653

java中常说的容器到底是什么

稍微有所了解的小伙伴都知道java是面向对象的语言 类肯定是一个对象,一个对象不一定是类,它可能是一个变量,常量等 而java中容器最常规意思的就是能保存java的对象的类,常见的容器类Java容器类包含List、ArrayList、Vector及map、HashTable、HashMap 除此以外的还有tomcat容器这样的容器自动运行你写好的代码,他的本质是一个程序 比如java框架中出名的Spring中的IOC容器,它的最低层实现其实是把我们的类打包成一个BeanDefinition对象.

qq_42320804的博客 3371

Java容器学习,一文读懂Java容器使用知识文集。

在 Java 中,容器通常指的是常用的数据结构集合,Java 提供了多种容器来存储、操作和访问数据。主要的 Java 容器包括以下几种......

m0_50308467的博客 1333

Java容器与容器安全

Java容器与容器安全 Java容器关系图 idea使用快捷键 ctrl+h 可以查看类之间的继承关系,以上根据类继承接口的关系所绘,其中标绿色的是接口,深蓝色的是线程不安全的实现类,浅蓝色的是线程安全的实现类。 List与List不安全 只看图中的四个List实现类,正常情况下使用ArrayList List<String> list = new ArrayList<>(); list.add("a"); list.add("b");

qq_43104960的博客 722

Java 容器详解—— 常用容器类入门

在 Java 编程中,容器(Container)是用来存储和管理多个对象的结构。Java 提供了一套功能强大的容器类库 ——,位于java.util包中。List是一个有序的集合,允许元素重复,并可以通过索引访问。实现一个字符串栈,支持基本的入栈 (push) 和出栈 (pop) 操作。Java 容器是 Java 编程中最基础也最重要的部分之一。通过合理使用ListSet和Map,我们可以高效地处理各种数据结构问题。同时,学会查阅官方 API 文档,也是提升编程能力的重要一步。

吾为热爱计科,致力于知识分享的践行者,此博客是我在这条道路上留下的足迹。 1771

java中容器的作用_Java 容器相关知识全面总结

Java实用类库提供了一套相当完整的容器来帮助我们解决很多具体问题。因为我本身是一名Android开发者,包括我在内很多安卓开发,最拿手的就是ListView(RecycleView)+BaseAdapter+ArrayList三剑客, 平时接触使用的容器也只有ArrayList和HashMap。导致对于整个Java容器体系的掌握和使用还停留在很浅的层面。省不足而思改进,那么跟着我来总结一下Jav...

weixin_35537968的博客 765
上一篇: Java Web笔记 – JSP的工作原理介绍 Servlet与JSP之间的转换关系
下一篇: java的hashtable的用法
zi_jun
博客等级 码龄18年 109粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值