java集合概念

Collection(单列集合)

  • List(有序,可重复)

ArrayList

底层数据结构是数组,查询快,增删慢

线程不安全,效率高

Vector

底层数据结构是数组,查询快,增删慢

线程安全,效率低

LinkedList

底层数据结构是链表,查询慢,增删快

线程不安全,效率高

  • Set(无序,唯一)

HashSet

底层数据结构是哈希表。

哈希表依赖两个方法:hashCode()和equals()

执行顺序:

首先判断hashCode()值是否相同

是:继续执行equals(),看其返回值

是true:说明元素重复,不添加

是false:就直接添加到集合

否:就直接添加到集合

最终:

自动生成hashCode()和equals()即可

  • LinkedHashSet

底层数据结构由链表和哈希表组成。

由链表保证元素有序。

由哈希表保证元素唯一。

  • TreeSet

底层数据结构是红黑树。(是一种自平衡的二叉树)

如何保证元素唯一性呢?

根据比较的返回值是否是0来决定

如何保证元素的排序呢?

两种方式

自然排序(元素具备比较性)

让元素所属的类实现Comparable接口

比较器排序(集合具备比较性)

让集合接收一个Comparator的实现类对象

Map(双列集合)
  A:Map集合的数据结构仅仅针对键有效,与值无关。
  B:存储的是键值对形式的元素,键唯一,值可重复。

HashMap
  底层数据结构是哈希表。线程不安全,效率高
  哈希表依赖两个方法:hashCode()和equals()
  执行顺序:
    首先判断hashCode()值是否相同
    是:继续执行equals(),看其返回值
      是true:说明元素重复,不添加
      是false:就直接添加到集合
    否:就直接添加到集合
最终: 自动生成hashCode()和equals()即可
LinkedHashMap
  底层数据结构由链表和哈希表组成。
  由链表保证元素有序。
  由哈希表保证元素唯一。
Hashtable
  底层数据结构是哈希表。线程安全,效率低
  哈希表依赖两个方法:hashCode()和equals()
  执行顺序:
    首先判断hashCode()值是否相同
      是:继续执行equals(),看其返回值
        是true:说明元素重复,不添加
        是false:就直接添加到集合
      否:就直接添加到集合
最终: 自动生成hashCode()和equals()即可
TreeMap
  底层数据结构是红黑树。(是一种自平衡的二叉树)
  如何保证元素唯一性呢?
    根据比较的返回值是否是0来决定
  如何保证元素的排序呢?
    两种方式
      自然排序(元素具备比较性)
      让元素所属的类实现Comparable接口
      比较器排序(集合具备比较性)
      让集合接收一个Comparator的实现类对象

时间: 2024-10-27 07:48:11

java集合概念的相关文章

Java—集合框架List

集合的概念 现实生活中:很多的事物凑在一起 数学中的集合:具有共同属性的事物的总和 Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象 集合的作用 在类的内部,对数据进行组织(针对作用与意义一样的属性,将他们放到一个集合中) 简单而快速的搜索大数量的条目 有的集合接口,提供了一系列排列有序的元素,并且可以在序列中快速的插入或删除有关元素 有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型 与数组相比 数组的长度

JAVA集合框架

收藏 查看我的收藏 146有用+1 56 编辑 Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称.用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台.动态的Web.Internet计算.从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet.集合框架是为表示和操作集合而规定的一种统一的标准的体系结构.任何集合框架都包含三大块内容:对外的接口.接口的实

java集合之Collection架构

Java集合之Collection架构 首先,我们对Collection进行说明.下面先看看Collection的一些框架类的关系图: Collection是一个接口,它主要的两个分支是:List 和 Set.List和Set都是接口,它们继承于Collection.List是有序的队列,List中可以有重复的元素:而Set是数学概念中的集合,Set中没有重复元素!List和Set都有它们各自的实现类. 如ArrayList  LinkedList  Vector  Stack 为了方便,我们抽

Java集合与框架总结与学习

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文将主要讲解Java中集合的使用与区别,主要讲List.Set.Map的原理.使用方法.注意事项等. 一.Collection与Collectons的区别 Java集合框架是Java语言的重要组成部分,它包含了系统而完整的集合层次体系,封装了大量的数据结构的实现.深刻理解Java集合框架的组成结构及其中的实现类和算法,能极大提高程序员编码的能力.本章讲述Java集合框架,主要包括集合框架的

Java 集合系列 02 Collection架构

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 首先,我们对Collection进行说明.下面先看看Collection的一些框架类的关系图: Collection是一个接口,它主要的两个分支是:List 和 Set. List和Set都是接口,它们继承于Collection.L

java集合基础

集合概念与作用 1现实生活中把很多事物凑在一起就是集合.java中的集合类:是一种工具,就像是容器,存储任意数量的有共同属性的对象. 2在类的内部,对数据进行组织: 简单而快速的搜索大数量的条目 有的集合借口,提供了一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关元素. 有的集合接口,提供了映射关系,可以通过关键字去快速查找到对应的唯一对象,而这个关键字是可以是任意类型. 3 Collection(List ,Queue,Set ) 1)List和Queue:排列有序的可以重复的

给jdk写注释系列之jdk1.6容器(13)-总结篇之Java集合与数据结构

是的,这篇blogs是一个总结篇,最开始的时候我提到过,对于java容器或集合的学习也可以看做是对数据结构的学习与应用.在前面我们分析了很多的java容器,也接触了好多种常用的数据结构,今天我们就来总结下这些内容. 下面我们以数据结构的维度来总结下,在Java集合的实现过程中,底层到底使用了哪些常用的数据结构中,他们分别又有什么特点.      1. 数组(Array) 结构说明:在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来.这些按序排列的同类数据元素的集合称为数组

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

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

java集合框架小结(进阶版)之HashMap篇

基本概念: Hash(哈希):hash一般也译作“散列”.事实上,就是一个函数,用于直接定址.将数据元素的关键字key作为变量,通过哈希函数,计算生成该元素的存储地址. 冲突:函数是可以多对一的.即:多个自变量可以映射到同一函数值.一般而言,不同的key的hash值是不同的.在往hash表中映射的时候,不同的hash值可能映射到同一存储地址,这种情况被称为冲突. 解决冲突的方法: 1. 链表法:将冲突的各个元素用一个一维数组来维护.(java源码实现) 2. 开发寻址法:具体的有线性探测法.二次