java——双列集合

  1. 双列集合一次需要存一对数据,分别为键和值

  2. 键不能重复

  3. 键和值是一一对应的,每一个键只能找到自己对应的值

  4. 键+值这个整体我们称之为“键值对”或“键值对对象”Entry对象

方法名 说明
V put(k key,v value) 添加元素
V remove(Object key) 根据键删除键值对元素
void clear() 移除所有的键值对元素
boolean containskey(Object key) 判断集合是否包含指定的键
boolean containsValue(Object value) 判断集合是否包含指定的值
boolean isEmpty() 判断集合是否为空
int saze() 集合长度,也就是键值对个数

Map遍历

  1. HashMap底层是哈希表结构的

  2. 依赖hashCode方法和equals方法保证键的唯一

  3. 如果键储存的是自定义对象,需要重写hashCode和equals方法

  4. 如果值存储的时自定义对象,不需要重写hashCode和equals方法

LinkedHashMap

有键决定的:有序,不重复,无索引

这里的有序是指保证存储和取出的元素顺序一致

原理:底层数据结构依然是哈希表,只是每个键值对又额外的多了一个双链表的机制记录存储的顺序

TreeMap

TreeMap跟TreeSet底层原理一样,都是红黑树结构的

由键决定特性:不重复,无索引,可排序

可排序:对键进行排序

TreeMap默认按照间的从小到大进行排序,也可以自己规定的排序规则

代码书写两种排序规则

  1. 实现Comparable接口,指定比较原则

  2. 创建集合时传递Comparator比较器对象,指定比较规则

可变参数

  1. 可变参数本质就是一个数组

  2. 作用:在形参中接收多个数据

  3. 格式:数据类型 ....参数名称 例int.....a

  4. 注意:1.形参列表中可变参数只能有一个 2.可变参数必须放在形参列表的最后面

Collections

-java.util.Collections:是集合工具类

作用:Collections不是集合,而是集合工具类

方法 说明
public static< T >boolean addAll(Collection< T > c, T.....elements) 批量添加元素
public static voidshuffle(List< ? > list) 打乱LIst集合元素顺序
public static < T > void sort(List< T >list) 排序
public static < T > void sort(List, Comparator< T > c ) 根据指定的规则排序
public static < T > int binarySearch(List< T >,T key) 二分法查元素
public static < T > void copy(List< T >dest,LIst< T > src) 拷贝集合中的元素
public static < T > int fill(List< T >list,T obj) 使用指定的元素填充集合
public static < T > void max/min(Collection< T > coll) 根据自然排序获取最大/小值
public static < T > void swap(List< ? > list,int i,int j) 交换集合中指定位置元素

集合进阶

不可变集合:不可以被改变的集合

特点:定义后不可以修改或添加,删除

如何创建不可变集合

LIst Set和Map集合中,都存在of方法可以创建不可变集合

三种方式的细节

  • List:直接用

  • Set:元素不能重复

  • Map:元素不能重复,键值对数量最多是10个,超过10个用ofEntries方法

java——双列集合的更多相关文章

  1. JAVA双列集合HashMap

    HashMap 双列集合HashMap是属于java集合框架3大类接口的Map类,   Map接口储存一组成对的键-值对象,提供key(键)到value(值)的映射.Map中的key不要求有序,不允许 ...

  2. java oop 单列 双列 集合, 迭代器 的使用和说明

    一.集合(Collection) (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组 而数组的长度固定, ...

  3. Java之Map接口(双列集合)

    Map集合概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对 ...

  4. Java中的集合(七)双列集合顶层接口------Map接口架构

    Java中的集合(七)双列集合顶层接口------Map接口 一.Map接口的简介 通过List接口,我们知道List接口下的集合是单列集合,数据存储是单列的结构.Map接口下是一个键值对(key-v ...

  5. 双列集合Map的嵌套遍历

    双列集合Map的嵌套使用,例如HashMap中还有一个HashMap,这样的集合遍历起来稍微有点儿复杂.例如一个集合:HashMap<Integer,HashMap<String,Inte ...

  6. 获取单列集合,双列集合,数组的Stream流对象以及简单操作

    获取流对象 获取单列集合,双列集合,数组的流对象 单列集合获取流对象: 1.java.util.Collection接口中加入了default方法stream()获取流对象,因此其所有实现类均可通过此 ...

  7. HashMap -双列集合的遍历与常用的方法

    package cn.learn.Map; /* java.util.Hashtable<k,y> implements Map<k,v> 早期双列集合,jdk1.0开始 同步 ...

  8. Day 9:双列集合Map及实现该接口的类的常用方法

    为什么要学双列集合? 因为单列集合无法处理映射关系,会有成对出现的数据 Map接口  如果是实现了Map接口的集合类,具备的特点: 存储的数据都是以键值对的形式存在的,键不可重复,值可以重复 Map接 ...

  9. (10)集合之双列集合Map,HashMap,TreeMap

    Map中的元素是两个对象,一个对象作为键,一个对象作为值.键不可以重复,但是值可以重复. 看顶层共性方法找子类特有对象. Map与Collection在集合框架中属并列存在 Map存储的是键值对 Ma ...

  10. 双列集合Map

    1.双列集合Map,就是存储key-value的键值对. 2.hashMap中键必须唯一,值可以不唯一. 3.主要方法:put添加数据    getKey---通过key获取数据    keySet- ...

随机推荐

  1. java checkbox

    简介 checkbox code /* * @Author: your name * @Date: 2020-11-04 09:44:08 * @LastEditTime: 2020-11-04 09 ...

  2. vs code 使用 ssh 远程 链接到 ubuntu 服务器开发

    简介 出现了许多问题一一解答 QU1 bad owner or permissions on C:\Users\USER/.ssh/config An1 取消继承的权限,然后增加自己用户的权限 具体参 ...

  3. 在Windows和Linux终端下使用代理的方式

    背景 在快乐上网的时候,网页会经过代理,但是有些在终端运行的程序不一定会经过代理,比如用git clone github仓库的时候,或者curl 下载github release的时候,如果不走代理, ...

  4. Math-AdvancedAlgebra-行列式

    A11 A12 A21 A22

  5. 手把手搭建 Astro + Github Pages + Github Actions

    项目源地址:saicaca fuwari 我实现的效果:https://bxgldh.github.io/ 挑模板挑了很久,个人认为原博主的这个模板非常好看O(∩_∩)O. 但是由于我是小白,在上手初 ...

  6. c#运用ZeroMq发布订阅和RPC函数代理的优点结合成一个新的实用的通讯

    想用ZeroMq的发布订阅者模式,又不想写一大串switch case? 想用RPC函数代理机制,又想多对多进行通讯? 下面就结合二者的优点重新封装一套通讯模块 一.先写ZeroMq的发布订阅这模式 ...

  7. unity简单http案例 + 服务端

    客户端 using System; using System.Collections; using System.Collections.Generic; using System.Net; usin ...

  8. unity 单位 像素 分辨率 正交摄像机size 之间的关系

    这个5表示摄像机的视距 代表摄像机拍摄的一般高度 如果16:9的分辨率,100像素为1 unity单位的情况 填充摄像机所需图片大小尺寸为:高度:5*2*100 = 1000    宽度:1000*1 ...

  9. go学习笔记:Go 语言标准库中的 sort 包常用方法有哪几种?

    1. 基本排序方法 sort.Ints(a []int) 对int类型切片升序排序. sort.Float64s(a []float64) 对float64类型切片升序排序. sort.Strings ...

  10. Web前端入门第 83 问:JavaScript localStorage 有大小限制吗?溢出会怎样?

    本地存储除了 Cookie 外,还有 localStorage 和 sessionStorage,本文一探 localStorage. localStorage 此 API 存入的数据会 永久 保存在 ...