首页 > 编程 > Java > 正文

Java基础之集合框架

2019-11-06 09:47:18
字体:
来源:转载
供稿:网友

概述

java集合工具包包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.*;其总体框架图如下所示:

Collections

List

一个有序且有索引的容器,允许重复值的出现。

Set

一个无序的唯一对象的容器,不允许重复值出现。

Map

一个基于键值对以及哈希的数据结构,不允许相同的键值出现。

对比

重复对象

List 允许,Set 不允许,而Map中键对象必须唯一。

排序

List 有序,Set 无序,而Map也没有规定顺序。

某些 Set 实现比如 LinkedHashSet 还是保持了每个元素的插入顺序。此外 SortedSet 的实现 TreeSet , SortedMap的实现 TreeMap 也通过 Comparator 或者 Comparable 维护了一个排序顺序。

NULL值

List允许多个null值,Set允许一个null值,Map可以有多个null值和最多一个null键。

Hashtable 既不允许 null 键也不允许 null 值。

流行实现

List

ArrayList:提供了使用索引的随意访问LinkedList :的链表结构对于经常需要从 List 中添加或删除元素的场合比较合适Vector :可以理解为同步的ArrayListStack:继承Vector,实现了一个标准的后进先出的栈。

Set

HashSet 也不能提供任何排序保证,基于 HashMap 实现TreeSet 实现了 SortedSet 接口,根据其 compare() 和 compareTo() 的定义进行排序的有序容器。LinkedHashSet:继承HashSet, 除了提供 Set 接口的唯一性,还提供了元素的有序性。

Map

HashMap 是 Map 接口的一个非同步的通用实现Hashtable 是 HashMap 的一个提供了同步功能的副本HashMap 和 Hashtable 都不能像 LinkedHashMap 那样做任何排序保证TreeMap 也是一个有序的数据结构,它按照键的值进行升序排列。

Comparable与Comparator

都是Java中用于实现对象的比较、排序的接口。

//Comparablepublic class Student implements Comparable{public int compareTo(Student another) {}}Collections.sort( studentList )//Comparatorpublic class Student{}class StudentComparator implements Comparator { public int compare(Student one, Student another) {}}Collections.sort( studentList , new StudentComparator());

集合脑图

Collections

脑图地址: http://www.xmind.net/m/UPWK

参考: Difference between Set, List and Map in Java - Interview question Java集合干货系列-集合总体大纲


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表