Java集合框架中的元素

  之前有一篇笔记,讲的是集合和泛型,这几天看Java集合中几个接口的文档,思绪非常混乱,直到看到Oracle的“The Collections Framwork”的页面,条理才清晰些,现在进行整理。

  一、为什么需要集合?

  应用程序中经常需要创建很多的对象来完成一定的工作,所以我们需要将这些一定数目的对象组织起来进行统一管理。

  对象数组能够满足我们,如果对象的数目是清晰有限且生命周期可知,那么使用对象数组来进行管理是非常简单和直观的。

  数组一旦创建,它的容量便固定了,在它的生命周期里再也无法被改变。但是程序总是在运行时才根据某些条件去创建新对象,在此之前,我们无法预知所需对象的数量,甚至会不知道确切的类型。那么如何在任意时刻管理任意数量的对象呢?集合便为此诞生了。

  ps:这两种组织和管理对象的方式分别为“array-based”、“collection-based”,在下面提到的集合接口中,有一个方法叫做“toArray()”,被称为两种方式间的桥梁。

  二、The Collections Framwork

  Java集合框架到底包含了什么,根据它的API规范做一个总结。

  1、Collection interfaces,即集合接口。

  实现这些接口是我们使用集合的主要方式。它有两个根接口,Collection和Map。

  至于接口的层次结构,这里不再赘述

  2、 implementations,即接口实现类

  是对集合接口的各种实现。

  可以看到API规范中列举了多种类型的实现类,其中最基础也最重要的是General-purpose implementations,即通用实现类,里面包含了我们常用的一些数据结构。下表就是常用的接口和它们的常用的实现类:

  

  至于其他的那些 implementations,等有需要了再看,知道实现类种类很多就行。

  

  3、Algorithms ,算法

  提供了一些基本的算法实现。

  这些算法的静态方法都在一个名叫“Collections”的类中(java.util.Collections)。

  4、Infrastructure,基础设施

  这个在我看的书本上并没有提,看它的类型就很清楚它的作用了。它里面有4种“基础设施”:

  • Iterators:Iterator、Listiterator
  • Ordering:Comparable、Comparator
  • Runtime exceptions:(两个类)UnsupportedOperationException 、ConcurrentModificationException
  • Performance:RandomAccess

  5、Array Utilities

  里面就包含了Arrays类(java.util.Arrays),因为需要用到很多其中的静态方法!

  附一张书本上的“集合框架全景图”:·

原文地址:https://www.cnblogs.com/bigbigbigo/p/8571305.html

时间: 2024-10-10 10:46:20

Java集合框架中的元素的相关文章

Java集合框架中List接口的简单使用

Java集合框架可以简单的理解为一种放置对象的容器,和数学中的集合概念类似,Java中的集合可以存放一系列对象的引用,也可以看做是数组的提升,Java集合类是一种工具类,只有相同类型的对象引用才可以放到同一个集合中,否则是不能放进去的: 集合可以对元素进行简单快速的查找.插入.删除操作 某些集合可以有<key value>映射的关系 数组的长度是固定的,而集合的长度是跟随元素的个数动态变化的,灵活性和扩展性都比数组更加优越 数组只能存放基本类型的数据,而集合存放的是对象引用类型的 数组只能通过

Java集合框架中隐藏的设计套路

我们的世界不应该只有"胡萝卜" 进入正题之前容我先扯点别的. 最近突然想到了一个驴子和胡萝卜不得不说的故事.说是一个人坐在驴子背上,用一根长杆绑着一根胡萝卜,然后把胡萝卜悬到驴子的面前,驴子以为只要向前走一步就可以吃到胡萝卜,于是不停地向前走,可是它始终无法吃到这根萝卜. 一千个读者就有一千个哈姆雷特,当然不同的人对这个故事也会有不同的理解.比如我们为了生活拼命地工作,却永远达不到财务自由,我们是不是也像一只忙碌的"驴子"呢? 所以,我们的世界不应该只有"

Java集合框架中Map接口的使用

在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不是线性的存放对象的引用,Map接口提供了一种映射关系,所有的元素都是以键值对(Entry类型对象实例)的方式存储的,所以能够根据key快速查找value,key是映射关系的索引,value是key所指向的对象,注意,这里的value不是一个数值,而是一个对象的引用,Java集合框架的元素均是指对象!

JAVA集合框架中的常用集合及其特点、适用场景、实现原理简介

JJDK提供了大量优秀的集合实现供开发者使用,合格的程序员必须要能够通过功能场景和性能需求选用最合适的集合,这就要求开发者必须熟悉Java的常用集合类.本文将就Java Collections Framework中常用的集合及其特点.适用场景.实现原理进行介绍,供学习者参考.当然,要真正深入理解Java的集合实现,还是要推荐去阅读JDK的源码. Java提供的众多集合类由两大接口衍生而来:Collection接口和Map接口 Collection接口 Collection接口定义了一个包含一批对

Java集合框架中的快速失败(fail—fast)机制详解

先说结论:在用for遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加.删除),则会抛出ConcurrentModificationException.在单线程下用迭代器遍历修改,则不会报错.在多线程环境下则会报错. ??原理:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量.集合在被遍历期间如果内容发生变化,就会改变modCount的值.每当迭代器使用hashNext()/next()遍历下一个元素之前,都会检测modCount变量是否为ex

java集合框架中Set和List的区别

1. Set 接口实例存储的是无序的,不重复的数据.List 接口实例存储的是有序的,可以重复的元素. 2. Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>. 3. List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度.查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector> . 原文地址:https://www.cnb

2016.3.9-3.10(java集合框架)

3.9 集合框架有什么作用? 集合框架其主要功能是用来将存储的数据以某种结构组织,并以特定的方式来访问这些数据. Java集合框架中有哪些存储方式? Java集合框架中的对象容器,按照对象在其中的存储方式,分为Set.List.和Map三种类型. Set类型对象没有顺序,且不能重复: List类型对象容器中的对象按照索引顺序排序,而且可以有重复的对象: Map类型对象容器中的元素包含一对“键对象-值对象”映射,其中键对象不能重复,值对象可以重复. 以上三种存储方式对应Java集合框架中Set.L

[转载]Java集合框架的常见面试题

http://www.jfox.info/40-ge-java-ji-he-lei-mian-shi-ti-he-da-an 整理自上面链接: Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点.这里,我列出了一些关于Java集合的重要问题和答案. 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用, Java1.2提出了囊括所有集

Java集合框架面试题

www.cnblogs.com/zhxxcq/archive/2012/03/11/2389611.html 这里的两个图很形象,由于放进图片链接,图片显示不了,所以只能给出该链接. Java集合框架是最常被问到的Java面试问题,要理解Java技术强大特性就有必要掌握集合框架.这里有一些实用问题,常在核心Java面试中问到. 1.什么是Java集合API Java集合框架API是用来表示和操作集合的统一框架,它包含接口.实现类.以及帮助程序员完成一些编程的算法.简言之,API在上层完成以下几件