初识Java中的容器

记得第一次听到java中的容器是一个师哥说的,当时听着十分神秘。那么今天就来揭开那层神秘的面纱。

首先什么是容器呢?

在书写程序的时候,我们常常需要对大量的对象引用进行管理。为了实现有效的归类管理,我们常常将同类的引用放置在同一数据容器中。由于数据容器中存放了我们随时可能需要使用到的对象引用,所以一般的数据容器要都要能能提供方便的查询、遍历、修改等基本接口功能。

早期的OOP语言都通过数组的方式来实现对引用集的集中管理和维护。

但是数组方式下,数组大小需要提前被确定,并不允许修改大小,导致其作为一种灵活的数据容器的能力的功能大为下降。

为了方便的利用数据容器进行引用的管理,Java中提供了丰富的数据容器以满足程序员多样化的需求。

Java中的容器:

6个接口:

Collection接口定义了存取一组对象的方法,子接口Set和List分别定义了存储方式。 Set中的数据对象没有顺序不可以重复,List与其相反。

Map接口的实现类定义存储Key-Value对,因为键值对通过键来标识,所以键值不能重复。

Iterator接口:主要在涉及到遍历时使用。所有实现了Collection接口的容器类都有一个iterator方法用来返回一个实现了Iterator接口的对象。

Comparable接口:当两个对象涉及到比较时,使用它唯一的一个compareTo方法。

 Collection接口和Collections类的区别?

java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。

java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。

总结:容器中的每个接口除了Comparable接口只有一个方法外,其他的都有很多的方法,具体方法的种类及用法查阅API尤为重要,查API文档的能力在这体现的淋漓尽致。面纱虽然揭开了,但还是初步的认识,需要慢慢理解运用。

时间: 2024-12-29 05:44:20

初识Java中的容器的相关文章

java中的容器解释

解释一:容器(Container)Spring 提供容器功能,容器可以管理对象的生命周期.对象与对象之间的依赖关系,您可以使用一个配置文件(通常是XML),在上面定义好对象的名称.如何产生(Prototype 方式或Singleton 方式).哪个对象产生之后必须设定成为某个对象的属性等,在启动容器之后,所有的对象都可以直接取用,不用编写任何一行程序代码来产生对象,或是建立对象与对象之间的依赖关系.换个更直白点的说明方式:容器是一个Java 所编写的程序,原先必须自行编写程序以管理对象关系,现在

Java中的容器(集合)之HashMap源码解析

1.HashMap源码解析(JDK8) 基础原理: 对比上一篇<Java中的容器(集合)之ArrayList源码解析>而言,本篇只解析HashMap常用的核心方法的源码. HashMap是一个以键值对存储的容器. hashMap底层实现为数组+链表+红黑树(链表超过8时转为红黑树,JDK7为数组+链表). HashMap会根据key的hashCode得到对应的hash值,再去数组中找寻对应的数组位置(下标). hash方法如下: static final int hash(Object key

Java中集合类容器初步了解

容器(Collection) 数组是一种容器,集合也是一种容器 java编程中, 装其他各种各样的对象(引用类型)的一种东西, 叫容器 (图书馆里所有的书, 要想管理图书馆里所有的书, 就需要先把这些书放到一个东西里面, 目前掌握的知识来说, 只能是数组, 数组的长度是固定的, 这就出现 一个问题, 数组的长度该定义成多长 ? 长度是不固定的, 因为不知道有多少本书, 这个时候需要这样一种机制: 定义一种东西, 长度不固定, 可以随时添加和删除, 这种东西就是Collection, 只要不超出内

持有对象:总结JAVA中的容器,迭代器

JAVA使用术语“Collection”来指代那些表示集合的对象,JAVA提供的接口很多,首先我们先来记住他们的层次结构: java集合框架的基本接口/类层次结构 java.util.Collection [I] +--java.util.List [I] +--java.util.ArrayList [C] +--java.util.LinkedList [C] +--java.util.Vector [C] +--java.util.Stack [C] +--java.util.Set [I

持有对象——Java中的容器(一)

泛型和类型安全的容器 使用Java SE5之前,编译器允许向容器中插入不正确的类型,Java SE5引入泛型之后,应用预定义的泛型可以在编译期防止将错误类型的对象放到容器中. 基本概念 Collection.一个独立元素的序列,这些元素都服从一条或多条规则.List必须按照插入顺序保存元素,Set不能保存重复元素,Queue按照排队规则来确定对象产生的顺序(通常与他们插入的顺序相同). Map.一组成对的"键值对"对象,允许使用键来查找值.其中键不能重复,否则键对应的值会被覆盖. Ha

说说java中传容器某些情况下失效

楼主今天写个方法移除map集合中的空值,遇到个问题,就是对容器操作后,发现失效了:先上代码 public static void removeValueNullAndEmpty(Map<String,String> A) { Map<String,String> B = new HashMap<>(); for(String key : B.keySet()){ if(A.get(key) != null || !"".equals(A.get(ke

Java中的容器(集合)

1.Java常用容器:List,Set,Map List: 继承了Collection接口(public interface List<E> extends Collection<E> ),有序且允许出现重复值. Set: 继承了Collection接口(public interface Set<E> extends Collection<E> ),无序且不允许出现重复值. Map: 是一个使用键值对存储的容器(public interface Map<

Java中的容器的简单运用

如标题,就是我要说的,至于好不好用,只有看了才知道 在JavaWeb中,使用最多的容器莫过于List,Map,所以本文只围绕这两个容器的运用进行说明,那么这两个容器又衍生了常用的ArrayList,HashMap,List<Map<String,Object>> 对于List 情境一:出现在使用纯jsp编写的项目中 此时它会直接在页面使用,比如我们在数据库中取数据时,我们通常会取出数据库的数据,然后构造成List以便于页面取值显示. 1 ResultSet rs = null; 2

java中一些容器底层的数据结构解析

先来看一个java里一些主要容器的继承图: 然后分别解析一下上面几种容器底层的数据结构以及一些实现: 1.ArrayList(非线程安全的) 底层的数据结构其实就是数组,但是它比数组优秀的地方在于他是动态的,即不必像数组那样固定大小,那么他是如何实现这种数据结构是数组,但是给我们看起来确实不固定大小的呢? ArrayList 是通过将底层 Object 数组复制的方式(System.arraycopy方法)来处理数组的增长: 当ArrayList 的容量不足时,其扩充容量的方式:先将容量扩充至当