`
ithuzhanju
  • 浏览: 27504 次
  • 性别: 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集合的知识点汇总将会涵盖Java集合的基本概念、类型、实现、操作和注意事项等方面。 Java集合的基本概念 Java集合是Java语言...

    JAVA面试-集合知识点汇总(高频、经典).doc

    Java集合类主要由两个根接口`Collection`和`Map`派生出来。`Collection`派生出了三个子接口:`List`、`Set`、`Queue`(Java 5新增的队列接口)。因此,Java集合大致可以分为`List`、`Set`、`Queue`、`Map`四种接口...

    2020最新Java企业面试题汇总-1000多份.txt

    ### 一、Java基础知识 #### 1. Java语言特点 - **面向对象**:封装、继承、多态。 - **平台无关性**:通过JVM实现跨平台运行。 - **自动垃圾回收**:避免内存泄露问题。 #### 2. 数据类型 - **基本数据类型**:...

    java面试题汇总java笔试题大集合及答案题库java笔试题汇总资料超过100个合集

    再者,集合框架是Java编程中的重要组成部分,包括List、Set、Map接口及其实现类。面试时可能会被问到ArrayList与LinkedList的区别、HashMap的工作原理、ConcurrentHashMap的并发支持等。理解这些容器的内部实现和...

    JAVA技术--java_程序员面试题汇总.docx

    Java 技术面试题汇总涵盖了广泛的Java基础知识,包括类的作用域、匿名内部类、静态嵌套类、位运算符与逻辑运算符的区别、集合框架、断言以及字符串对象的创建等核心概念。以下是对这些知识点的详细解释: 1. **类的...

    java集合思维导图

    Java集合框架是Java编程语言中的一个核心部分,它为数据存储和管理提供了高效且灵活的解决方案。本思维导图及总结旨在深入理解并掌握Java集合的相关概念和使用方法。 首先,我们来了解一下Java集合框架的基本构成。...

    1+X 初级 Java程序设计基础 1-9 章测试题汇总

    这个资料集合了蓝桥官网的1到9章测试题,覆盖了Java语言的基础概念、语法和常用编程技巧。 1. **Java基础**:第1章通常介绍Java的历史、特点和环境配置,包括JDK的安装、JRE与JVM的关系,以及如何编写第一个Hello, ...

    JAVA基础测试中常见的异常问题汇总-Java-CSDN

    在Java编程语言中,异常处理是一项至关重要的技能,尤其是在进行基础测试时。本文将深入探讨在JAVA基础测试中常见的异常问题,帮助开发者更好地理解和解决这些问题。 1. **运行时异常**:Java中的运行时异常...

    Java基础知识汇总2

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

    BioJava1.5-docs.tar

    BioJava1.5-docs.tar是BioJava 1.5版本的文档集合,包含了关于该项目的详细说明和API参考,是开发者理解和使用BioJava的重要资源。 在解压BioJava1.5-docs.tar后,主要会得到一个名为"doc"的文件夹,该文件夹内包含...

    java笔试题大集合及答案Java基础方面.doc

    Java 基础知识点汇总 在这篇文章中,我们将总结 Java 基础知识点,涵盖了作用域、匿名内部类、静态内部类、逻辑运算符、集合框架、断言、字符串处理、数学运算、数组操作、多态性等方面。 一、作用域 在 Java 中...

    java集合类学习汇总

    Java集合类是Java编程语言中用于存储对象的重要工具,它们提供了灵活的数据组织方式,使得开发者可以高效地管理和操作数据。本篇文章将详细讲解Java集合框架中的核心类,并探讨其使用场景和相关数据结构。 首先,...

    JAVA面试-知识点汇总.pdf

    在Java编程语言中,面试时常会涉及到多个核心概念和技术,以下是对这些知识点的详细解析: ...理解并掌握这些Java基础和高级概念对于开发者来说至关重要,它们不仅是面试的重点,也是实际开发中不可或缺的基础知识。

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

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

    JAVA教程集合汇总-从入门到入土【汇总多年-史上最详细】呕心沥血整理

    Java集合框架是处理对象集合的重要工具,包括ArrayList、LinkedList、HashSet、HashMap等。理解它们的内部工作原理和适用场景,能够有效地组织和操作数据。 五、IO与NIO Java的输入输出(IO)和非阻塞IO(NIO)库为...

    Java基础知识笔试题及答案

    本资源汇总了 Java 基础知识笔试题及答案,涵盖了 Java 的基本概念、数据类型、运算符、控制结构、函数、数组、集合框架、泛型等方面的知识点。 一、Java 基本概念 Java 是一种面向对象的编程语言,它具有五个基本...

    传智播客_java基础知识汇总

    6. **day12-day15集合.doc**:Java集合框架是处理对象集合的工具,包括List、Set、Queue、Map等接口及其实现类。这部分可能深入讲解了它们的特性、操作方法和适用场景。 7. **day17JDK5.0新特性与正则表达式.doc**...

    java面试汇总--提高成功率的宝典

    Java面试汇总——提升面试成功率的关键知识点 在Java面试中,掌握关键知识点是成功的关键。以下是一些常见的面试问题和解答,这些内容可以帮助你更好地准备Java面试。 1. 面向对象的特征: - 抽象:允许我们定义...

    08-java基础汇总学习笔记

    3. **Java集合框架**:文件`java集合结构图.jpg`和`Collection集合体现结构图.png`展示了ArrayList、LinkedList、HashSet、HashMap等集合类的层次关系。集合用于存储多个对象,了解它们的区别和使用场景对于高效编程...

Global site tag (gtag.js) - Google Analytics