Java集合分为Collection和Map,Collection又分为List、Set。 List中有ArrayList、LinkedList和Vector;Set中又分为HashSet和TreeSet。Map中有HashMap和TreeMap。他们的分类结构关系如下:

分类结构

1. Collection

1.1 List

1.1.1 ArrayList

1.1.2 LinkedList

1.1.3 Vector

1.2 Set

1.2.1 HashSet

1.2.2 TreeSet

2. Map

2.1 HashMap

2.2 TreeMap

特点和区别

1. Collection:以值的形式直接存储,可重复

1.1 List  有序的,可重复的

1.1.1 ArrayList 底层是数组,添加删除慢,查找快,线程不安全的;

1.1.2 LinkedList 底层是链表,添加删除快,查找慢,线程不安全的;

1.1.3 Vector  底层是数组,添加删除慢,查找快,线程安全的。

1.2 Set 无序的,不可重复的

1.2.1 HashSet 底层是哈希表,可以通过重写hashCode() 和 equals()方法去重,不可排序的;

1.2.2 TreeSet 底层是二叉树,可以通过重写Comparable中的compareTo方法,或者重写Comparator的compare方法实现去重和排序。

2. Map: 以键值对的形式,key-value结构映射的

2.1 HashMap 线程不安全的,可以通过重写hashCode() 和 equals()方法去重,不可排序的;

2.2 TreeMap 线程不安全的,可以通过重写Comparable中的compareTo方法,或者重写Comparator的compare方法实现排序。

【Java】集合概述Collection、Map的更多相关文章

  1. Java集合----概述、Collection接口、Iterator接口

    Java 集合概述 Java 集合就像一种容器,可以把多个对象的引用放入容器中. Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组 Java 集合可分为 Set.Li ...

  2. Java 集合系列 15 Map总结

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  3. Java集合概述、Set集合(HashSet类、LinkedHashSet类、TreeSet类、EnumSet类)

    Java集合概述.Set集合(HashSet类.LinkedHashSet类.TreeSet类.EnumSet类) 1.Java集合概述1)数组可以保存多个对象,但数组长度不可变,一旦在初始化数组时指 ...

  4. Java笔记:Java集合概述和Set集合

    本文主要是Java集合的概述和Set集合 1.Java集合概述 1)数组可以保存多个对象,但数组长度不可变,一旦在初始化数组时指定了数组长度,这个数组长度就是不可变的,如果需要保存数量变化的数据,数组 ...

  5. 第8章-Java集合 --- 概述

    第8章-Java集合 --- 概述 (1)Java集合类是一种特别有用的工具类,可以用于存储数量不等的多个对象,并可以实现常用的数据结构,如 栈.队列等. (2)Java集合大致可分为Set.List ...

  6. Java集合--概述

    目录 Java集合--概述 摘要 图示 正文 Java集合--概述 摘要 ​ 本文主要介绍集合的整体概念,并作为接下来Java集合实现类讲解的索引. 图示 ​ 这是在网上看到了这样一张图,感觉很清晰, ...

  7. Java集合(一):Java集合概述

    注:本文基于JDK 1.7 1 概述 Java提供了一个丰富的集合框架,这个集合框架包括了很多接口.虚拟类和实现类. 这些接口和类提供了丰富的功能.可以满足主要的聚合需求. 下图就是这个框架的总体结构 ...

  8. Java集合——概述

    Java集合——概述 摘要:本文主要介绍了几种集合类型以及有关的一些知识点. 集合类图 类图 类图说明 所有集合类都位于java.util包下.Java的集合类主要由两个接口派生而出:Collecti ...

  9. Java集合概述(上)

    Java集合概述(上) 前言 先说说,为什么要写这么一篇博客(我总是喜欢写原因).因为最近到年底了,正好又要准备面试,所以在做各方面的技术总结.而Java集合是Java非常重要的一部分,自己前前后后也 ...

随机推荐

  1. WebView设置透明和设置背景图片的方法

    http://blog.csdn.net/Vincent20111024/article/details/8478219 1. WebView若要设置背景图,直接设置web .setBackgroun ...

  2. 使用Axure管理团队项目以及分享原型

    第一部分:使用Axure管理团队项目 首先,你要有一个Axure账户 呵呵哒.注册地址:http://share.axure.com 发起团队项目 在浏览器登录 Axure share(网速很卡很卡) ...

  3. C# FTP操作类(获取文件和文件夹列表)

    一.如何获取某一目录下的文件和文件夹列表. 由于FtpWebRequest类只提供了WebRequestMethods.Ftp.ListDirectory方式和WebRequestMethods.Ft ...

  4. Android已上线应用开源分享中(第一季)

    这是我上线的第一个android应用,在百度.腾讯.豌豆荚等平台测试通过,也有了部分用户,还是可以的啊,哈哈.现在分享给大家,当然,源码我也会分享. 1.软件是一个管理wifi的小工具 (1)查询.连 ...

  5. 表空间常用sql汇总

    表空间碎片相关:select tablespace_name,       round(sqrt(max(blocks) / sum(blocks)) *             (100 / sqr ...

  6. February 20 2017 Week 8 Monday

    Behind every beautiful thing, there's some kind of pain. 美丽背后,必有努力. No pains, no gains, and sometime ...

  7. 我的第一个Python随笔

    自学Python也很长时间了,注册博客园写了第一篇随笔.之前想过很多次,但是始终不知道该怎么开始,内容如何,现在想想,随笔嘛,是自己的想法,也自己的实践,又是自己的锻炼.话不多说,开始今天的正式内容. ...

  8. 使用log4j让日志写入数据库

    之前做的一个项目有这么个要求,在日志管理系统里,需要将某些日志信息存储到数据库里,供用户.管理员查看分析.因此我就花了点时间搞了一下这一功能,各位请看. 摘要:我们知道log4j能提供强大的可配置的记 ...

  9. 在编译器中调试spark程序处理

    在IDEA中调试spark程序会报错 18/05/16 07:33:51 WARN NativeCodeLoader: Unable to load native-hadoop library for ...

  10. 两个List中的补集

    /** * 获取两个List的不同元素 * @param list1 * @param list2 * @return */ private static List getDiffrent(List ...