`

java 基础之容器(Collection)

 
阅读更多

来自:http://zhhxxx.iteye.com/blog/654048

【原】Java容器总结

Collection 
├List 
│ ├LinkedList 
│ ├ArrayList 
│ └Vector 
│  └Stack 
└Set 
   └HashSet 
Map 
├Hashtable 
├HashMap 
└WeakHashMap 
Iterator 
└ListIterator 

一、集合的层次结构: 
collection是集合接口  
        |————set子接口:无序,不允许重复。  
        |————list子接口:有序,可以有重复元素。  
   
区别:collections是集合类  
set和list对比:  
set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。  
list:和数组类似,list可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。     
set和list具体子类:  
set  
|————hashset:以哈希表的形式存放元素,插入删除速度很快。     
list  
|————arraylist:动态数组  
|————linkedlist:链表、队列、堆栈。  
   
array和java.util.vector  
vector是一种老的动态数组,是线程同步的,效率很低,一般不赞成使用。  
二、迭代器的层次结构: 
iterator是获取集合中元素的过程,实际上帮助获取集合中的元素。  
迭代器代替了 java collections framework 中的 enumeration。迭代器与枚举有两点不同:  
迭代器允许调用方利用定义良好的语义在迭代期间从迭代器所指向的集合移除元素。   
方法名称得到了改进。   
iterator仅有一个子接口listiterator,是列表迭代器,允许程序员按任一方向遍历列表、迭代期间修改列表,并获得迭代器在列表中的当前位置。listiterator 没有当前元素;它的光标位置 始终位于调用 previous() 所返回的元素和调用 next() 所返回的元素之间。在长度为 n 的列表中,有 n+1 个有效的索引值,从 0 到 n(包含)。 
三、Map的层次结构: 
map将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射一个值。  
map接口是dictionary(字典)抽象类的替代品。  
map 接口提供三种collection 视图,允许以键集、值集合或键-值映射关系集的形式查看某个映射的内容。映射的顺序 定义为迭代器在映射的 collection 视图中返回其元素的顺序。某些映射实现可明确保证其顺序,如 treemap 类;某些映射实现则不保证顺序,如 hashmap 类。   
有两个常见的已实现的子类:  
hashmap:基于哈希表的 map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,hashmap 类与 hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。   
treemap:它实现sortedmap 接口的基于红黑树的实现。此类保证了映射按照升序顺序排列关键字,根据使用的构造方法不同,可能会按照键的类的自然顺序 进行排序(参见 comparable),或者按照创建时所提供的比较器进行排序。   
hashtable:此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。 
四、线程安全: 
在集合框架中,有些类是线程安全的,这些都是jdk1.1中的出现的。在jdk1.2之后,就出现许许多多非线程安全的类。  
下面是这些线程安全的同步的类:  
vector:就比arraylist多了个同步化机制(线程安全)。  
statck:堆栈类,先进后出。  
hashtable:就比hashmap多了个线程安全。  
enumeration:枚举,相当于迭代器。  
除了这些之外,其他的都是非线程安全的类和接口。  
线程安全的类其方法是同步的,每次只能一个访问。是重量级对象,效率较低。对于非线程安全的类和接口,在多线程中需要程序员自己处理线程安全问题。  
五、其他一些接口和类: 
dictionary和hashtable类:  
dictionary提供键值映射的功能,是个抽象类。一般使用它的子类hashtable类。遍历hashtable类要用到枚举。   
properties类  
properties 继承于 hashtable,properties 类表示了一个持久的属性集。properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。一般可以通过读取properties配置文件来填充properties对象。

分享到:
评论

相关推荐

    Java容器框架 collection集合

    java集合框架总结 Collection体系结构 ArrayList源码解读 HashMap HashSet 深入讲解java集合框架

    java 集合类 容器类

    java 集合类 容器类 Collection 很让人费解的东西

    Java容器有两种基本类型Collection 和 Map

    Java容器有两种基本类型Collection 和 Map

    Java基础知识点总结.docx

    < java.util > Collection接口 77 < java.util >Iterator接口 78 < java.util >List接口 78 < java.util >Set接口 80 < java.util >Map接口 81 把map集合转成set的方法 82 使用集合的技巧 83 Collections--集合工具...

    java容器详解(collection,list,set,map)

    java集合的详解,collection,list,set,map疑难解答,对于对容器似懂非懂的新手来说,这无疑是给你指点迷津的一个非常不错的选择,讲解内容丰富。

    Java中的容器.doc )

    Java的容器类有两种基本类型:Collection和Map,区别在于容器中每个位置保存的元素个数。Collection每个位置只能保存一个元素,Map保存的是键值对。 2、迭代器,是一个对象,它的工作是遍历并选择序列中的对象,...

    java容器类

    java 容器类 集合类 Collection 你懂了吗

    基础深化和提高-java容器

    Java容器主要分为两大类:Collection 和 Map。 Collection: Collection表示一组对象,它的主要子接口包括List、Set和Queue。其中: List:以线性方式存储元素,允许重复元素,并且可以根据索引访问元素。 Set:不...

    JAVA容器讲解.pdf

    Java容器讲解PPT,Collection Map(HashMap TreeMap LinkedHashMap) List (ArrayList LinkedList Vector) Set (HashSet TreeSet LinkedHashSet)

    java中集合容器的详细介绍

    在常见用法中,集合(collection)和数学上直观的集(set)的概念是相同的。集是一个唯一项组,也就是说组中没有重复项。实际上,“集合框架”包含了一个 Set 接口和许多具体的 Set 类。但正式的集概念却比 Java ...

    think in java线程和容器2

    java线程中容器使用技术,比如List接口是在Collection的基础上添加了大量方法,有两种基本类型:ArrayList,它擅⻓于随机访问元素,但是List中间插入或移除元 素时较慢;LinkedList,它和ArrayList的特性正好相反。...

    Java 基础核心总结 +经典算法大全.rar

    《Java 基础核心总结》 Java 概述 什么是 Java2 Java 的特点Java 开发环境 JDK JRE Java 开发环境配置 Java 基本语法 数据类型基础语法运算符 Java 执行控制流程条件语句 if 条件语句 if...else 条件语句if...else ...

    JAVA基础课程讲义

    第七章 容器(Collection) 136 容器的作用和概览 136 容器中的接口层次结构 136 Collection接口 137 LIST接口 137 SET接口 138 Map接口 138 Iterator接口 139 遍历集合 140 Collections工具类 141 Comparable接口 141...

    Java容器.xmind

    Collection 标记: 顶级接口 List 标记: interface ArrayList 标记: class CRUD : boolean add​(E e) boolean remove​(Object o) E set​(int index, E element) E get​(int index) 底层数组实现,查询快,...

    Java设计模式之Iterator模式

    1.首先定义一个容器Collection接口. 2.定义一个Iterator迭代器的接口 3.定义一个ArrayList,实现Collection接口,并写一个实现了Iterator接口的内部类。 4.编写测试程序TestMain 从以上可以看出,设计模式到处用到...

    JAVA容器的作用和概览

    Collection 表示一组对象,它是集中,收集的意思,就是把一些数据收集起来 Collection接口的两个子接口: Set中的数据没有顺序,不可重复。 List中的数据有顺序,可重复。

    Java集合教程之Collection实例详解

    集合,或者叫容器,是一个包含多个元素的对象,下面这篇文章主要给大家介绍了关于Java集合教程之Collection的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

    Java面试大全(备战2021) 最新Java面试必问合集 PDF版

    Java面试大全是一套最新Java面试必问合集,这本面试手册包含了Java基础、Java集合、JVM、Spring、Spring Boot、Spring Cloud、Mysql、Redis、RabbitMQ、Dubbo、Netty、分布式及架构设计等方面的技术点。内容难度参差...

    Java并发编程:同步容器

    为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列、Synchronizer(比如CountDownLatch)。我们来讨论下同步容器。  一.为什么会出现同步容器?  在...

    java容器超详细

    java容器又可以称为Java Collection Framework(JCF)。里面除了存储对象的容器之外,还提供了一套用于处理和操作容器里面的对象的一套工具类。 整体框架: 原创文章 21获赞 12访问量 4617 关注 私信

Global site tag (gtag.js) - Google Analytics