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

介绍Java集合类(Collections)

    博客分类:
  • j2se
阅读更多
    本文介绍了java.util下的接口Collection和集合类Collections的相关知识,供大家参考。

     

    在介绍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.  

一、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

Java集合类的相关内容就介绍到这里。

 

http://developer.51cto.com/art/200909/149543.htm

分享到:
评论

相关推荐

    java集合类演示源码

    集合类的框架为集合的实现者提供了大量的接口和抽象类,并对其中的某些机制给予了描述,例如,Iterator(迭代协议)。实现Comparable接口或Comparator接口,用户可以根据需要对集合中的元素进行排序。为了方便用户...

    559.557.JAVA基础教程_集合-Collections工具类常用方法的测试(559).rar

    559.557.JAVA基础教程_集合-Collections工具类常用方法的测试(559).rar

    Java集合框架图

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

    Java常用类及集合操作

    Java常用类 Math类 String类 StringBuffer类 StringTokenizer类 包装类 集合操作 集合 列表(List) 映射(Map) Collections类 枚举和迭代

    Java操作集合工具类Collections使用详解

    主要介绍了java操作集合工具类Collections使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    java集合类学习与实例

    Collections Framework集合框架是一个统一的架构,用来表示和操作集合.集合框架主要是由接口,抽象类和实现类构成.接口:蓝色;实现类:红色Collection|_____Set(HashSet)| |_____SortedSet(TreeSet)|_____List...

    7.尚硅谷_java基础_java集合

    Java 集合概述 Collection 接口 Iterator 接口 Set List Map Collections 工具类 Enumeration

    Java Collections集合继承结构图_动力节点Java学院整理

    主要介绍了Java Collections集合继承结构图_动力节点Java学院整理,需要的朋友可以参考下

    java-immutable-collections:Java的高效ImmutablePersistent集合

    Java库的不可变集合(JImmutable Collections)是一组高性能的不可变集合,用于替换或补充标准的java.util集合。 为每个最常用的集合提供功能替换: Java类 JImmutable接口 工厂方法 数组列表 JImmutableList ...

    Java SE编程入门教程 java集合(共38页).pptx

    Java SE编程入门教程 java集合(共38页).pptx Java SE编程入门教程 java接口(共21页).pptx Java SE编程入门教程 java类和对象方法以及包的使用(共56页).pptx Java SE编程入门教程 java类和对象方法以及包的使用...

    Java基础_Java集合

    Java 集合概述  Collection 接口  Iterator 接口  Set  List  Map  Collections 工具类  Enumeration

    Java-Generics-and-Collections-2:Java Generics and Collections Java泛型和集合

    第三章(集合类) 3.1 可比较的 3.2 集合的最大值 3.3 水果相关示例 3.4 比较 3.5 枚举类型 3.6 多重界限 3.7 桥接器 3.8 协变覆盖 第四章(声明) 4.1 构造函数 4.2 静态成员 4.3 嵌套类 4.4 擦除的工作原理 第五章...

    commons-collections-3.2.2.jar

    包中对Java中的集合类进行了一定的补充,定义了一些全新的集合,当然也是实现了Collection接口的,比如Bag,BidiMap。同时拥有新版本的原有集合,比如FastArrayList。最后,更为重要的是一系列utils类,提供了我们...

    Java集合类——前言

    Java集合主要有4个部分: List列表 Set集合 Map映射 工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections) 这个图乱的一批o_o … emmmm大致可以看出,上面有三巨头,即Iterator、Collection、Map...

    Java集合详解代码.zip

    Java集合的知识点整理(List,Set,Map,Collections工具类)以及代码实现。

    Java 集合方面的面试题

    如何使用 Collections 类对集合进行排序? 什么是 Comparable 和 Comparator 接口?它们有什么区别? 如何使用 ConcurrentHashMap 类来实现线程安全的映射? 如何避免在多线程环境下对同一集合的并发修改? 如何使用...

    Java 集合框架介绍.ppt

    “集合框架”(Collections Framework)提供了一组精心设计的接口和类,它们以单个单元即集合的形式存储和操作数据组 。对于计算机科学数据结构课程中学到的许多抽象数据类型如映射(map)、集(set)、列表(list)...

    Collections源码java-Java-Collections-Resize-Logic-Note:从源码角度分析Java中常用集合类的

    从这一篇开始,会陆续通过笔记来整理和记录之前看过的各种Java集合相关的知识点,主要包括List和Map。今天这一篇主要整理一下集合扩容相关的知识,涉及到的集合框架有:HashMap,ArrayMap,SparseArray,ArrayList,...

    Java理论与实践:并发集合类

    本文介绍了在Java类库中出现的第一个关联的集合类是Hashtable,它是JDK 1.0的一部分。Hashtable提供了一种易于使用的、线程安全的、关联的map功能,这当然也是方便的。然而,线程安全性是凭代价换来的―― Hashtable...

    JAVA集合框架工具类自定义Collections集合方法

    今天小编就为大家分享一篇关于JAVA集合框架工具类自定义Collections集合方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

Global site tag (gtag.js) - Google Analytics