持有对象:总结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.util.HashSet [C]
   +--java.util.SortedSet [I]
      +--java.util.TreeSet [C]

java.util.Map [I]
+--java.util.SortedMap [I]
   +--java.util.TreeMap [C]
+--java.util.Hashtable [C]
+--java.util.HashMap [C]
+--java.util.LinkedHashMap [C]
+--java.util.WeakHashMap [C]

对于那些没有使用泛型的容器,这些容器里存储Object对象,也就是说可以是不同类型的对象。无论是否使用泛型,行为都是相同的,一般还是用泛型保证类型安全,避免运行时错误,注意泛型不能以基础类型为参数。

首先需要掌握一些静态方法:

使用Arrays.asList(objects...)生成了一个列表用于初始化容器

使用Collections.sort(list)来排序容器内的元素

使用Collections.shufle(list, rand)来打乱元素顺序

ArrayList

使用add(object)和addAll(list)和add(index, object)来添加元素,实际上所有Collection的实现类都有这两个方法。

使用remove(object)来删除特定值的元素

使用indexOf(object)来获得特定值的元素的索引

使用get(index)来访问元素。

还可以用size()获得元素的个数。

小心,方法add(list)和remove(list)指的是添加或删除这个列表中的元素还是这个列表本身?

Map的实现类

使用put(object,object)来添加键值对。

时间: 2024-07-31 14:31:32

持有对象:总结JAVA中的容器,迭代器的相关文章

【Thinking In Java零散笔记】对于持有对象一章中的显示系统环境变量代码分析

今天仍旧进行着学习java的计划.在学习到持有对象一章中,看到了如下代码: 1 import java.util.*; 2 3 public class EnvironmentVariables { 4 public static void main(String[] args) { 5 for(Map.Entry entry: System.getenv().entrySet()) { 6 System.out.println(entry.getKey() + ": " + 7 en

初识Java中的容器

记得第一次听到java中的容器是一个师哥说的,当时听着十分神秘.那么今天就来揭开那层神秘的面纱. 首先什么是容器呢? 在书写程序的时候,我们常常需要对大量的对象引用进行管理.为了实现有效的归类管理,我们常常将同类的引用放置在同一数据容器中.由于数据容器中存放了我们随时可能需要使用到的对象引用,所以一般的数据容器要都要能能提供方便的查询.遍历.修改等基本接口功能. 早期的OOP语言都通过数组的方式来实现对引用集的集中管理和维护. 但是数组方式下,数组大小需要提前被确定,并不允许修改大小,导致其作为

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中的iterator迭代器

Collection的iterator方法返回一个实现了一个Iterator接口的对象 Iterator接口中包含三个方法: 1)E next() 2)boolean hasNext() 3)void remove 具体用法: Iterator<Integer> integers=collection.iterator(); while(integers.hasNext()){ System.out.print(integers.next()+" "); } 可以通过调用h

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

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

java持有对象【2】ArrayList容器续解

此为JDK API1.6.0对ArrayList的解释. ArrayList 使用java泛型创建类很复杂,但是应用预定义的泛型很简单.例如,要想定义用来保存Apple对象的ArrayList,可以声明ArrayList<Apple>,尖括号内为类型参数,(可以为多个).它指定了容器可以保存的类型. 通过使用泛型,可以在编译期防止将错误类型的对象放置到容器中. ArrayList向上转型为List. 应该注意到,在将元素从List中取出时,类型转换不是必须的了.因为List在调用get()时会

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中集合类容器初步了解

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