一.Collection接口

1.Collection接口两个子接口

    -List接口

        -ArrayList:

        -Vector:

        -LinkedList:

    -Set接口

        -HashSet:

            -LinkedHashSet:

        -TreeSet:

  2.Collection

        |--List    有序,可重复

            |--ArrayList

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

                线程不安全,效率高

            |--Vector

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

                线程安全,效率低

            |--LinkedList

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

                线程不安全,效率高

        |--Set    无序,唯一

            |--HashSet

                底层数据结构是哈希表。

                如何保证元素唯一性的呢?

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

                    开发中自动生成这两个方法即可即重写

                |--LinkedHashSet

                    底层数据结构是链表和哈希表

                    由链表保证元素有序

                    由哈希表保证元素唯一

            |--TreeSet

                底层数据结构是红黑树。

                如何保证元素排序的呢?

                    自然排序,实现Comparable接口,并且重写compreTo方法。

                    比较器排序  自定义比较,实现Comparator接口,重写compare方法。

                如何保证元素唯一性的呢?

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

3.针对Collection集合我们到底使用谁呢?(掌握)

    唯一吗?

        是:Set

            排序吗?

                是:TreeSet

                否:HashSet

        如果你知道是Set,但是不知道是哪个Set,就用HashSet。

            

        否:List

            要安全吗?

                是:Vector

                否:ArrayList或者LinkedList

                    查询多:ArrayList

                    增删多:LinkedList

        如果你知道是List,但是不知道是哪个List,就用ArrayList。

    

    如果你知道是Collection集合,但是不知道使用谁,就用ArrayList。

    

    如果你知道用集合,就用ArrayList。

4.:在集合中常见的数据结构(掌握)

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

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

    HashXxx:底层数据结构是哈希表。依赖两个方法:hashCode()和equals()

    TreeXxx:底层数据结构是二叉树。两种方式排序:自然排序和比较器排序

二.Map接口

Map(掌握)

    1.基本概念:

(1)将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。

(2)Map和Collection的区别?

        A:Map 存储的是键值对形式的元素,键唯一,值可以重复。夫妻对

        B:Collection 存储的是单独出现的元素,子接口Set元素唯一,子接口List元素可重复。

    (3)Map接口功能概述

        A:添加功能

        B:删除功能

        C:判断功能

        D:获取功能

        E:长度功能

2.Map集合的遍历

        A:键找值(keyset方法)

            a:获取所有键的集合

            b:遍历键的集合,得到每一个键

            c:根据键到集合中去找值

        

        B:键值对对象找键和值(entrySet方法,键和值得关系映射存入set集合中)

            a:获取所有的键值对对象的集合

            b:遍历键值对对象的集合,获取每一个键值对对象

            c:根据键值对对象去获取键和值

使用集合时注意所需功能是什么,再去寻找相应的集合。

java基础之集合(Set,Map,List)总结的更多相关文章

  1. JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API

    森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397  文章- 0  评论- 78  JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...

  2. 第6节:Java基础 - 三大集合(上)

    第6节:Java基础 - 三大集合(上) 本小节是Java基础篇章的第四小节,主要介绍Java中的常用集合知识点,涉及到的内容包括Java中的三大集合的引出,以及HashMap,Hashtable和C ...

  3. 备战金三银四!一线互联网公司java岗面试题整理:Java基础+多线程+集合+JVM合集!

    前言 回首来看2020年,真的是印象中过的最快的一年了,真的是时间过的飞快,还没反应过来年就夸完了,相信大家也已经开始上班了!俗话说新年新气象,马上就要到了一年之中最重要的金三银四,之前一直有粉丝要求 ...

  4. java基础技术集合面试【笔记】

    java基础技术集合面试[笔记] Hashmap: 基于哈希表的 Map 接口的实现,此实现提供所有可选的映射操作,并允许使用 null 值和 null 键(除了不同步和允许使用 null 之外,Ha ...

  5. 第51节:Java当中的集合框架Map

    简书作者:达叔小生 Java当中的集合框架Map 01 Map提供了三个集合视图: 键集 值集 键-值 映射集 public String getWeek(int num){ if(num<0 ...

  6. Java基础之 集合体系结构(Collection、List、ArrayList、LinkedList、Vector)

    Java基础之 集合体系结构详细笔记(Collection.List.ArrayList.LinkedList.Vector) 集合是JavaSE的重要组成部分,其与数据结构的知识密切相联,集合体系就 ...

  7. Java当中的集合框架Map

    简书作者:达叔小生 Java当中的集合框架Map 01 Map提供了三个集合视图: 键集 值集 键-值 映射集 public String getWeek(int num){ if(num<0 ...

  8. java基础之集合:List Set Map的概述以及使用场景

    本文的整体思路以及部分文字来源:来源一 和 来源二 Java集合类的基本概念: 首先大家要明白集合为什么会出现: 在编程中,常常需要集中存放多个数据.从传统意义上讲,数组是我们的一个很好的选择,前提是 ...

  9. Java基础--说集合框架

    版权所有,转载注明出处. 1,Java中,集合是什么?为什么会出现? 根据数学的定义,集合是一个元素或多个元素的构成,即集合一个装有元素的容器. Java中已经有数组这一装有元素的容器,为什么还要新建 ...

随机推荐

  1. qfc 问题汇总(TO BE CONTINUED)

    硬件问题 增加一个复位按钮 程序问题 /* uart allocation: PB6-7: UART1 -> TELEM PD5-6 : UART2 -> SBUS PD8-9: UART ...

  2. maven配置步骤

    仅做操作手册使用,一些操作频率较高的步骤已省略 第一步:度娘下载maven并解压 此处使用了apache-maven-3.2.5-bin.zip, 解压后复制到了D盘的D:\maven\apache- ...

  3. Eclipse添加git插件及操作

    注册账号新建仓库 在Github已经注册成功自己的账号 新建一个仓库 创建成功后记住url: 安装Git插件 首先像安装Pydev一样 点击help的Install New Software 点击Ad ...

  4. ON_WM_TIMER() void (__cdecl xx::* )(UINT)”转换为“void (__cdecl CWnd::* )(UINT_PTR)

     ON_WM_TIMER()在编译器从32位转换为64位的时候, 出现的问题; class CFlatComboBox : public CComboBox   (基类为CWnd) 为了重载CWnd的 ...

  5. 【JZOJ3237】间谍派遣

    description 你是M,一个雇佣N个标号为从1到N的间谍的情报机关的总管.每个间谍被派往不同的国家并在那获取重要情报. 如下是你的任务: 1.在部分间谍间组织会面.每次会面在两个间谍间进行,两 ...

  6. 洛谷P1640 【SCOI2010】连续攻击游戏

    原题传送门 题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性. ...

  7. JS 根据今天的日期获取本周星期一与星期天的日期

    var now = new Date(); var nowTime = now.getTime() ; var day = now.getDay(); var oneDayTime = 24*60*6 ...

  8. 过滤器filters

    <!DOCTYPE html> <html lang="zh"> <head> <title></title> < ...

  9. java单元测试小结

    1. mock 构造函数 import static org.junit.Assert.*; import java.util.ArrayList; import org.junit.Test; im ...

  10. 03jQuery对象初识(二)筛选器2

    1.下面的筛选都是非常常用的 <ul> <li id="l0">l0</li> <li>l1</li> <li&g ...