集合(一)----------概述

java中的集合分为单列集合和双列集合。

单列集合的树形体系:

---------| Collection 单例集合的根接口
------------| List  如果是实现了List接口的集合类, 具备的特点:有序,重复。
---------------| ArraryList  底层 是使用了Object数组实现的,特点: 查询速度快,增删慢。
---------------| LinkedList 底层是使用了链表数据结构实现 的, 特点: 查询速度慢,增删快。
---------------| Vector Vector的实现与ArrayList是一致,但是是线程安全 的,操作效率低。 jdk1.0的时候出现的
------------| Set  如果是实现了Set接口的集合类,具备的特点:无序,不可重复。
----------------| HashSet  底层是使用了一个哈希表支持的, 特点:存取速度快。
HashSet添加元素的原理:
    往HashSet添加元素的时候,首先HashSet会调用元素的hashCode方法得到元素的哈希码值,然后会经过一系列运算就可以算出该元素在哈希表中的存储位置。存储的过程中存在以下两种情况:  
    情况1:如果算出该元素的位置目前没有任何元素存储,那么该元素可以直接存储 
    情况2: 如果算出该元素的位置目前已经存有其他的元素,那么还会调用元素的equals方法与该位置的元素再比较一次。
    如果equals方法返回的是false,那么该元素允许存储,如果euqlas方法返回的是true,那么该元素被视为重复元素,不允许存储。

------------------| TreeSet  底层是使用了红黑树(二叉树)数据结构实现的, 特点:会对元素进行排序存储。

TreeSet要注意的事项:
    1. 往TreeSet添加元素的时候,如果元素本身具备自然顺序的特性,那么会根据元素自然顺序的特性进行排序存储。
    2. 往TreeSet添加元素的时候,如果元素本身不具备自然顺序的特性,那么元素所属的类必须要实现Comparable接口,把元素的比较规则定义在CompareTo方法上。
    3. 往TreeSet添加元素的时候,如果元素本身不具备自然顺序的特性,而且元素所属的类没有实现Comparable接口,那么必须要在创建TreeSet对象的时候传入比较器。
    4. 如果比较的方法(CompareTo 或者Compare )返回的是0的时候,那么该元素就被视为重复元素,不允许添加。
    
    比较器的定义格式:  自定义一个类实现COmparator接口即可。
        
        class 类名  implements Comparator{
        
        }

双列集合的树形关系

-------------| Map  如果是实现了Map接口的集合类,具备的特点: 存储的数据都是以键值对的形式存在的,键不可重复,值可以重复。
----------------| HashMap  底层也是基于哈希表实现 的。
HashMap的存储原理:
    往HashMap添加元素的时候,首先会调用键的hashCode方法得到元素 的哈希码值,然后经过运算就可以算出该元素在哈希表中的存储位置。存储的过程中存在以下两种情况:
    情况1: 如果算出的位置目前没有任何元素存储,那么该元素可以直接添加到哈希表中。
    情况2:如果算出的位置目前已经存在其他的元素,那么还会调用该元素的equals方法与这个位置上的元素进行比较,如果equals方法返回的是false,那么该元素允许被存储,如果equals方法返回的是true,那么该元素被视为重复元素,会覆盖原来的记录。

----------------| TreeMap   TreeMap也是基于红黑树(二叉树)数据结构实现 的, 特点:会对元素的键进行排序存储。

TreeMap 要注意的事项:
    1.  往TreeMap添加元素的时候,如果元素的键具备自然顺序,那么就会按照键的自然顺序特性进行排序存储。
    2.  往TreeMap添加元素的时候,如果元素的键不具备自然顺序特性, 那么键所属的类必须要实现Comparable接口,把键的比较规则定义在CompareTo方法上。
    3. 往TreeMap添加元素的时候,如果元素的键不具备自然顺序特性,而且键所属的类也没有实现Comparable接口,那么就必须在创建TreeMap对象的时候传入比较器。
   
----------------| Hashtable  和hashMap实现原理一样,但是是线程安全的,执行效率低。出现于JDK1.0。

时间: 2024-10-21 01:41:39

集合(一)----------概述的相关文章

Java基础知识强化之集合框架笔记50:Map集合之Map集合的概述和特点

1. Map集合的概述: 1 public interface Map<K,V> 作为学生来说,是根据学号来区分不同的学生的,那么假设我现在已经知道了学生的学号,我要根据学号去获取学生姓名,请问怎么做呢?如果采用前面讲解过的集合,我们只能把学号和学生姓名作为一个对象的成员,然后存储整个对象,将来遍历的时候,判断,获取对应的名称.但是呢,如果我都能把学生姓名拿出来了,我还需要根据编号去找吗?针对我们目前的这种需求:仅仅知道学号,就想知道学生姓名的情况,Java就提供了一种新的集合 Map.通过查

集合系列(一):集合框架概述

集合系列(一):集合框架概述 Java 集合是 Java API 用得最频繁的一类,掌握 Java 集合的原理以及继承结构非常有必要.总的来说,Java 容器可以划分为 4 个部分: List 集合 Set 集合 Queue 集合 Map 集合 除了上面 4 种集合之外,还有一个专门的工具类: 工具类(Iterator 迭代器.Enumeration 枚举类.Arrays 和 Collections) 在开始聊具体的集合体系之前,我想先介绍一下 Collection 框架的基本类结构.因为无论是

Android(java)学习笔记102:Map集合功能概述

下面通过代码引入Map集合:如下 1 package cn.itcast_01; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 6 /* 7 * 作为学生来说,是根据学号来区分不同的学生的,那么假设我现在已经知道了学生的学号,我要根据学号去获取学生姓名,请问怎么做呢? 8 * 如果采用前面讲解过的集合,我们只能把学号和学生姓名作为一个对象的成员,然后存储整个对象,将来遍历的时候,判断,获取对应的名称. 9 * 但是呢,如果我都能把

JavaSE入门学习33:Java集合框架概述

一集合框架 (1)集合的概念 现实生活中的集合:很多的事物凑在一起. 数学中的集合:具有共同属性的事物的总体. Java中的集合类:是一种工具类,就像是容器,储存任意数量的具有共同属性的对象. (2)集合框架的概念 有了集合的概念,什么是集合框架呢?集合框架是为表示和操作集合而规定的一种统一的标准的体系结构.任何 集合框架都包含三大块内容:对外的接口.接口的实现和对集合运算的算法. 1接口:即表示集合的抽象数据类型.接口提供了让我们对集合中所表示的内容进行单独操作的可能.接口允许 集合独立操纵其

Java 集合系列之一:JCF集合框架概述

容器,就是可以容纳其他Java对象的对象.Java Collections Framework(JCF)为Java开发者提供了通用的容器 java集合主要划分为四个部分: Collection(List列表.Set集合).Map映射.迭代器(Iterator.Enumeration).工具类(Arrays.Collections) 背景 数组的优势:是一种简单的线性序列,可以快速地访问数组元素,效率高.如果从效率和类型检查的角度讲,数组是最好的.数组的劣势:不灵活.容量需要事先定义好,不能随着需

集合的概述

Java语言的java.util包中提供了一些集合类,这些集合类又被称之为容器.而容器与数组的不同之处在于: 数组的长度是固定的, 集合的长度是可变的: 数组是用来存放基本类型的数据, 集合要过来存放对象的引用: 常见的集合有List集合,Set集合,Map集合: List集合继承了Collection接口,因此包含Collection的所有方法,并且List集合中可以包含可重复的对象: Set集合由Set接口和Set接口的实现类组成.Set接口继承了Collection的所有方法,但是set集

集合框架概述

集合框架的作用 实际开发当中,我们经常会对一组相同类型的数据进行统一管理操作.到目前为止,我们可以使用数组.链表结构.二叉树结构来实现. 数组的最大问题在于数组中的元素个数是固定的,要实现动态数组,比较还是比较麻烦,自己实现链表或二叉树结构来管理对象更是不方便. 在JDK1.2版本后,JAVA完整的提供了类集合的概念,封装了一组强大的.非常方便的集合框架API,让我们在开发中大大的提高了效率. 集合中分为三大接口 Collection(集合). Map(映射).Iterator(迭代.便利) 集

Java中集合的概述

一.集合和数组的区别 1.数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 2.集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用. 二.Java中集合框架图解与说明 1.Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类.但是却让其被继承产生了两个接口,就是Set和List.Set中不能包含重复的元素.List是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式.常用方法如下

Java基础_集合概述以及Colletion集合

集合 1.集合的概述 (1).集合的来由 我们学习的是面向对象的语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们必须把这个对象进行 存储,而要想存储多个对象,就不能是一个基本的变量,而应该是一个容器类型的变量,在我们目前所学过的只是里面,有哪一些是容器类 型的呢? 数组和StrngBuffer.但是呢?StringBuffer的结果是一个字符串,不一定满足我们的要求,所以我们只能够选择数组,也就是对象数组. 而对象数组又并不能够适应变化的需求,因为数组的长度是固