`
mabusyao
  • 浏览: 247802 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java Collection结构

    博客分类:
  • java
阅读更多



在介绍Java集合类之前,首先介绍一下Java集合的概念。

Java集合Collection接口

Collection 是任何对象组,元素各自独立,通常拥有相同的套用规则。Set List由它派生。

基本操作:

增加元素add(Object obj); addAll(Collection c);

删除元素 remove(Object obj); removeAll(Collection c);

求交集 retainAll(Collection c);

删除元素 remove(Object obj); removeAll(Collection c);

求交集 retainAll(Collection c);

访问/遍历集合元素的好办法是使用Iterator接口(迭代器用于取代Enumeration)

   1. Public interface Iterator{ 
   2. 
   3.     Public Boolean hasNext(}; 
   4. 
   5.      Public Object next(}; 
   6. 
   7.      Public void remove(}; 
   8. 
   9. }

一、set

无重复、无序

HashSet-基于散列表的集,加进散列表的元素要实现hashCode()方法以判断是否为同一个对象,无顺序、无重复。

LinkedHashSet-在HashSet中加入了链表数据结构,有顺序

TreeSet-可以排序,需要实现Comparable接口,并实现其compareTo()方法,以排序。

二、List

有重复、有序

ArrayList(数组表)- 有重复、有顺序。类似于Vector,都用于缩放数组维护集合。区别:

1.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的

2.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半

LinkedList(链表)-是双向链表,适合变更很多的List。

用在FIFO,用addList()加入元素 removeFirst()删除元素

用在FILO,用addFirst()/removeLast()

ListIterator提供双向遍历next() previous(),可删除、替换、增加元素

三、Map

用于关键字/数值对,较高的存取性能。不允许重复的key,但允许重复的Value。

处理Map的三种集合

关键字集KeySet() 数值集value()   项目集enrySet()

四个具体版本

HashMap-散列表的通用映射表,无序,可在初始化时设定其大小,自动增长。

LinkedHashMap-扩展HashMap,对返回集合迭代时,维护插入顺序

WeakHashMap-基于弱引用散列表的映射表,如果不保持映射表外的关键字的引用,则内存回收程序会回收它

TreeMap-基于平衡树的映射表

四、Java集合类collections

用于同步集合,还能改变集合只读方式的类

e.g.:

   1. Map mp=new HashMap(); 
   2. 
   3. mp=Collections.synchronizedMap(mp); //生成线程安全的映射表 
   4. 
   5. mp=Collections.unmodifiableMap(mp); //生成只读映射表

五、Comparable 自然顺序的排序类 Comparator 面向树的集合排序类

六、Vector类

Vector,可以动态增加容量。对它的操作简要如下

七、Enumeration接口

八、Dictionary类

字典。关键字/数值方式存取数据,如果映射没有此关键字,取回null。

九、Hashtable类

Dictionary结构的具体实现。

1、Collection 和 Collections的区别。

Collections是个java.util下的类,它包含有各种有关java集合操作的静态方法。

Collection是个java.util下的接口,它是各种java集合结构的父接口

2、List, Set, Map是否继承自Collection接口? List,Set是 Map不是

3、ArrayList和Vector的区别。

(1).同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的

(2).数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半

4、HashMap和Hashtable的区别

(1).历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现

(2).同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的

(3).值:只有HashMap可以让你将空值作为一个表的条目的key或value
  • 大小: 35.7 KB
分享到:
评论

相关推荐

    各种类型的collection结构java 实现

    布尔、字符、整型、浮点及抽象类型等各种类型的栈、队列、表、包等数据结构的java实现。非常强大,均可直接使用!

    Java体系结构介绍

    Java是什么 Java的历史 Java Language介绍 Java Collection Java Input/Output Stream JDBC(Java Database Connectivity)

    JAVA COLLECTION (APress)

    PDF文件+源代码 非常清晰,关于API和数据结构的书。 简洁明了,和不错的入门书籍。 找了很久。

    Java容器框架 collection集合

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

    数据结构和Java集合框架

    数据结构 和 Java集合框架

    Java Collection集合的简单介绍与运用

    集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.Map,这里主要记录一下Collection集合。 Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个...

    浅谈Java中常用数据结构的实现类Collection和M

    浅谈Java中常用数据结构的实现类Collection和Map共7页.pdf.zip

    Java集合Collection、List、Set、Map使用详解编程资料

    Java集合Collection、List、Set、Map使用详解

    动力节点_Java基础视频教程107_Collection集合结构

    动力节点的Java课程适合绝对零基础的观看,教程中讲解了Java开发环境搭建、Java的基础语法、Java的面向对象。每一个知识点都讲解的非常细腻,由浅入深。适合非计算机专业,想转行做Java开发的朋友,或者想让Java基础...

    Java 数据结构

    以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架(Collection),我们后面再讨论。 枚举(Enumeration) 枚举(Enumeration)接口虽然它本身不属于数据结构,但它在其他数据结构的范畴里应用很广。 ...

    collectionJava源码-collection-source-code-analyze:Java集合类源代码分析

    collection-source-code-analyze(Java集合类源代码分析) 对集合类源代码进行分析主要对增删改查操作的源代码进行分析, 因为这四个操作才是集合中最重要的, 其它的操作示情况进行分析, 分析的流程我采用的是自己仿照...

    JAVA_API1.6文档(中文)

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    Java集合框架使用总结

    所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection Framework)。 Java程序员在具体应用时,不必考虑数据结构和算法实现细节,只需要用这些类创建出来一些对象,然后直接应用就可以了。这样...

    浅谈Java中常用数据结构的实现类 Collection和Map

    下面小编就为大家带来一篇浅谈Java中常用数据结构的实现类 Collection和Map。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Java工具包提供了强大的数据结构

    以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架(Collection),我们后面再讨论。 枚举(Enumeration) 枚举(Enumeration)接口虽然它本身不属于数据结构,但它在其他数据结构的范畴里应用很广。 ...

    各大企业java面试笔试题

    介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)? 如COLLECTION中遗留类(HASHTABLE、VECTOR)和现有类的区别?(同步) 3.Java中异常处理机制,事件机制? 4.EJB与JAVA BEAN的区别? EJB与JAVA BEAN...

    Java集合框架图

    Java集合List集合Set集合Map集合Collection和collections工具类的框架图

    Java 1.6 API 中文 New

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类。...

    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--集合工具...

Global site tag (gtag.js) - Google Analytics