`
ithuzhanju
  • 浏览: 27167 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java基础----集合类汇总

    博客分类:
  • Java
阅读更多

一、Collections类和Collection接口

         Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

    Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些 Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection 类,Java SDK提供的类都是继承自Collection子接口ListSet

二、现在来谈谈Java集合的一些实现类。

Collection
List

ArreyList 

Vector

LinkedList

│└Stack

└Set

HashSet
LinkedHashSet

│└TreeSet

 

List代表有序、重复的集合

1.ArrayList
  ArrayList实现了可变大小的数组。它允许所有元素,包括nullArrayList没有同步。
size
isEmptygetset方法运行时间为常数。但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。
  每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法 并没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。
  和LinkedList一样,ArrayList也是非同步的(unsynchronized)。

2.Vector

  Vector非常类似ArrayList,但是Vector是同步的。由Vector创建的Iterator,虽然和ArrayList创建的Iterator是同一接口,但是,因为Vector是同步的,当一个Iterator被创建而且正在被使用,另一个线程改变了Vector的状态(例如,添加或删除了一些元素),这时调用Iterator的方法时将抛出ConcurrentModificationException,因此必须捕获该异常。

 

3.LinkedList
  LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的getremoveinsert方法在 LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。
  注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List
    List list = Collections.synchronizedList(new LinkedList(...));

 

4.Stack 
  Stack继承自Vector,实现一个后进先出的堆栈。Stack提供5个额外的方法使得Vector得以被当作堆栈使用。基本的pushpop方法,还有peek方法得到栈顶的元素,empty方法测试堆栈是否为空,search方法检测一个元素在堆栈中的位置。Stack刚创建后是空栈。

 

Set代表无序、不可重复的集合

 

Map
HashMap

Hashtable

TreeMap
└WeakHashMap

Map没有继承Collection接口

1.Hashtable
  Hashtable继承Map接口,实现一个key-value映射的哈希表。任何非空(non-null)的对象都可作为key或者valueHashtable是同步的。

2.HashMap
  HashMapHashtable类似,不同之处在于 HashMap是非同步的,并且允许null,即null valuenull key。,但是将HashMap视为Collection values()方法可返回Collection),其迭代子操作时间开销和HashMap的容量成比例。因此,如果迭代操作的性能相当重要的话,不要 HashMap的初始化容量设得过高,或者load factor过低。

3.WeakHashMap

  WeakHashMap是一种改进的HashMap,它对key实行弱引用,如果一个key不再被外部所引用,那么该key可以被GC回收。

三、集合类的遍历

遍历通用Collection

Iterator it = collection.iterator(); // 获得一个迭代子
  while(it.hasNext()) {
   Object obj = it.next(); // 得到下一个元素
}

4
4
分享到:
评论
1 楼 A_monster1991 2011-11-16  


  太感谢了, 正好最近学到这里 , 老师讲解很快 ,

  对我帮助很大 ,非常感谢博主的分享!


  

相关推荐

    java集合思维导图

    java集合 java集合思维导图 java集合总结

    Java基础知识汇总2

    该思维导图包括Java基础知识:Java提供的常见类、接口、内部类、抽象类、集合系统、异常体系、IO流、线程等基础知识。适用于Java初学者,做知识复习。

    java集合类学习汇总

    简单介绍了java几个集合类的使用(为了方便浅显了解java集合类的使用和应用场景)

    Java基础知识点总结.docx

    Array方法类汇总 304 Java数组与集合小结 305 递归 309 对象的序列化 310 Java两种线程类:Thread和Runnable 315 Java锁小结 321 java.util.concurrent.locks包下常用的类 326 NIO(New IO) 327 volatile详解 337 ...

    JAVA中集合类一些常用类的总结

    JAVA中集合类一些常用类的总结

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

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

    java面试笔试资料java笔试题大集合及答案题库java笔试题汇总资料188个合集.zip

    大公司最喜欢问的Java集合类面试题.docx 大公司的Java面试题集.doc 就业相关java 广州传智播客JavaEE工程师测试题.doc 广州传智播客JavaEE工程师测试题(带答案的).doc 应聘时最漂亮的回答.docx 当面试官问「你有...

    集合类底层源码解析汇总

    java所有集合类底层源码解析汇总,包括ArrayList、HashMap、HashSet、LinkedList、TreeMap、HashSet、ConcurrentHashMap等集合框架的底层实现源码大白话解读。

    Java面试笔记 225道Java面试题JAVA面试基础知识点总结Java数据结构题笔试WORD资料汇总(19个).zip

    Java基础、Java集合、多线程、JDBC、HTTP、JSP、Servlet、Struts面试题汇总(附答案).docx java工程师面试题大全-100%公司笔试题你都能碰到几个.docx Java开发工程师上机笔试题.docx Java开发求职面试题.docx Java...

    java8集合源码分析-Java-Virtual-Machine:Java虚拟机资源汇总

    源自知乎的一个问题,对于Java来说,所有类的父类都是Object类,但是Object类本身又属于类类型,即Class类型,那么问题就来了。 3. JVM简史 源自周老师的文章,讲述了JVM虚拟机的发展史,以及各种各样的Java虚拟机 4...

    java8集合源码分析-Java-Virtual-Machine:Java-虚拟机

    源自知乎的一个问题,对于Java来说,所有类的父类都是Object类,但是Object类本身又属于类类型,即Class类型,那么问题就来了。 3. JVM简史 源自周老师的文章,讲述了JVM虚拟机的发展史,以及各种各样的Java虚拟机 4...

    java面试笔试题库java软件设计java笔试题大集合及答案文档资料合集300MB.zip

    大公司最喜欢问的Java集合类面试题.docx 大公司的Java面试题集.doc 就业相关java 广州传智播客JavaEE工程师测试题.doc 广州传智播客JavaEE工程师测试题(带答案的).doc 应聘时最漂亮的回答.docx 当面试官问「你有...

    javastream源码-demo-java-stream-collectors:“预定义的Java流收集器”文章和源代码

    类(最多Java 12)中有44个公共静态工厂方法,它们返回接口的预定义实现。 为了更好地理解它们,将它们分为几类是合理的,例如: 使用从类的静态导入来使源代码更具可读性是合理的。 收藏家到收藏 将输入元素简化为...

    达内 CoreJava老师笔记汇总

    CoreJava DAY06 类的加载过程、实例化、继承、多态 37 CoreJava DAY07修饰符 50 CoreJava DAY08 常用类 56 CoreJava DAY09 高级语言特征 58 CoreJava DAY10 主方法,静态导入,包装类,枚举 62 CoreJava DAY11 内部...

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

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

    JAVA核心知识点整理.zip

    集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。 Collection:Collection 是集合 List、Set、Queue 的最基本的接口。 Iterator:迭代器,可以通过迭代器遍历集合中的...

    Java基础课程习题汇总.docx

    《Java基础课程习题汇总.docx》是一份极具价值的学习资源,旨在帮助学习者掌握Java编程的基础知识和技能。以下是对这个资源的详细描述: 全面的习题集合:这份资源包含了丰富的Java编程习题,涵盖了从基础到高级的...

    android和java面试大全集

    葵花宝典-基础类.doc 葵花宝典-数据库类1.doc 技术测评java.doc 技术测评.net.doc 瑞星笔试题(15道).doc 汉端笔试题(7页).doc 一道测试notepad笔试题.doc 奇虎面试题.doc 喜安科 面试题.doc 北京博彦科技...

    java面试题及技巧4

    │ │ 一些其它网站的java基础精华贴.txt │ │ 新建 文本文档.txt │ │ 经验总结.txt │ │ 资料目录.txt │ │ 题目.txt │ │ │ ├─HTML Pages │ │ │ Desktop_.ini │ │ │ Low Level Security in Java....

Global site tag (gtag.js) - Google Analytics