集合的结构如下图所示:

集合的两个顶级接口分别为:Collection和Map

Collection下有两个比较常用的接口分别是List(列表)和Set(集),其中List可以存储重复元素,元素是有序的(存取顺序一致),可以通过List脚标来获取指定元素;而Set不可以有重复元素,元素是无序的。

List接口中,比较常用的类有三个:ArrayList、Vactor、LinkedList。

ArrayList :线程不安全的,对元素的查询速度快。

Vector :线程安全的,多了一种取出元素的方式:枚举(Enumeration),但已被ArrayList取代。

LinkedList :链表结构,对元素的增删速度很快。

Set接口中,比较常用的类有两个:HashSet、TreeSet:

HashSet:要保证元素唯一性,需要覆盖掉Object中的equals和hashCode方法(因为底层是通过这两个方法来判断两个元素是否是同一个)。

TreeSet:以二叉树的结构对元素进行存储,可以对元素进行排序。

排序的两种方式:

1、元素自身具备比较功能,元素实现Comparable接口,覆盖compareTo方法。

2、建立一个比较器对象,该对象实现Comparator接口,覆盖compare方法,并将该对象作为参数传给TreeSet的构造函数(可以用匿名内部类)。

Map接口其特点是:元素是成对出现的,以键和值的形式体现出来,键要保证唯一性:常用类有:HashMap,Hashtable ,TreeMap。

HashMap:线程不安全等的,允许存放null键null值。

Hashtable:线程安全的,不允许存放null键null值。

TreeMap:可以对键进行排序(要实现排序方法同TreeSet)。

Collection和Map两个接口对元素操作的区别:

存入元素:

Collection接口下的实现类通过add方法来完成,而Map下是通过put方法来完成。

取出元素:

Collection接口下:List接口有两种方式:1、get(脚标);2、通过Iterator迭代方式获取元素;而Vactor多了一种枚举(Enumeration)的方式。Set接口通过迭代的方式获取元素。

Map接口下:先通地keySet获取键的系列,然后通过该系列使用Iterator迭代方式获取元素值。

Java集合常用类特点整理的更多相关文章

  1. Java集合框架类

    java集合框架类图 Collection接口(List.Set.Queue.Stack):

  2. Java集合---Array类源码解析

    Java集合---Array类源码解析              ---转自:牛奶.不加糖 一.Arrays.sort()数组排序 Java Arrays中提供了对所有类型的排序.其中主要分为Prim ...

  3. Java API 常用类(一)

    Java API 常用类 super类详解 "super"关键字代表父类对象.通过使用super关键字,可以访问父类的属性或方法,也可以在子类构造方法中调用父类的构造方法,以便初始 ...

  4. 7.Java集合-Arrays类实现原理及源码分析

    Java集合---Arrays类源码解析  转自:http://www.cnblogs.com/ITtangtang/p/3948765.html 一.Arrays.sort()数组排序 Java A ...

  5. AJPFX总结java开发常用类(包装,数字处理集合等)(一)

    一:首谈java中的包装类 Java为基本类型提供包装类,这使得任何接受对象的操作也可以用来操作基本类型,直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们会大量使用这些包装类.jav ...

  6. Java集合框架相关知识整理

    1.常见的集合有哪些? Collection接口和Map接口是所有集合框架的父接口    Collection接口的子接口包括:Set接口和List接口    Map接口的实现类主要有:HashMap ...

  7. Java中常用类(包装类扩展知识)

    Java常用类有哪些? 八大基本数据类型的包装类 包装类均位于java.lang包中,包装类和基本数据类型的对应关系如下表: 基本数据类型 包装类 byte Byte boolean Boolean ...

  8. Java之常用类及方法

    下面我们介绍Java类库所提供的常用类及类的常用方法 一.java.lang.String 1. String类常用的构造函数 public String(String original) 使用串对象 ...

  9. Java基础常用类深度解析(包含常见排序算法)

    目录 一.工具类 1.1.工具类的设计 1.1.1.公共静态方法 1.2.单例模式 二.包装类 2.1.基本类型的包装类 2.1.1.Integer 2.1.1.1.Integer >> ...

随机推荐

  1. ko trick

    (1)let a = ko.observable(‘A’)绑定到select,如果下拉列表中找不到'A', 变量a会赋值成undefined.   要解决此问题可以使用绑定valueAllowUnse ...

  2. 这是用过的"最差"树形插件

      这是用过的"最差"树形插件 !!! 或许大家听过一个bootstrap UI框架---ace皮肤.有兴趣的童鞋可以在线查看:https://www.iteblog.com/ac ...

  3. LDAP的Schema

    Schema是LDAP的一个重要组成部分,类似于数据库的模式定义,LDAP的Schema定义了LDAP目录所应遵循的结构和规则,比如一个 objectclass会有哪些属性,这些属性又是什么结构等等, ...

  4. CSS/HTML 改变鼠标指针形状

    改变鼠标指针形状的方法有两种:第一种:用的来改变鼠标指针形状.另一种是:利用第三方控件的方法,而我自己最常用的是第一种:用css样式表来改变鼠标指针形状 我们先来看第一种:用来改变鼠标指针形状. 有些 ...

  5. 带你一分钟理解 JavaScript 闭包 自己结合所看文档+源码的一些理解 喜欢就评论个赞哦!!!!--小蛋蛋

    什么是闭包? 先看一段代码: function a(){ var n = 0; function inc() { n++; console.log(n); } inc(); inc(); } a(); ...

  6. html5开发移动页面去掉点击出现的透明阴影----&&-----元素垂直居中

    [摘要:做好的页里正在脚机端测试时,发明局部扫瞄器,tap后会涌现一个半通明的灰色配景,(被批...),起先认为是outline作祟,减上后发明出反映,末了发明是tap后的配景下明,要重设那个]   ...

  7. mysql 表迁移

    http://blog.csdn.net/evan_endian/article/details/8652528  mysql中把一个表的数据批量导入另一个表中   不管是在网站开发还是在应用程序开发 ...

  8. 自己赚钱送女友iPhone做惊喜

    都说谈恋爱是件费时费力又费钱的事情,你要给女朋友准备各种节日的惊喜,你要给女朋友买她喜欢的裙子,你要请女朋友吃各种美味的食物......但是也别抱怨,一个男人若是连自己女朋友的这点物质要求都满足不了的 ...

  9. jqGrid设置指定行的背景色

    1.在页面中加样式 <style type="text/css"> .SelectBG{ background-color:#AAAAAA; } </style& ...

  10. Tanks坦克大战

    创建工程,场景: 将素材导入,Unity5以上的版本,无需担心素材包的路径问题,中文路径也可以直接导入了,简单方法就是将素材包直接拖到Project面板 游戏所需要的场景在Prefabs里的Level ...