java——双列集合
java——双列集合
双列集合一次需要存一对数据,分别为键和值
键不能重复
键和值是一一对应的,每一个键只能找到自己对应的值
键+值这个整体我们称之为“键值对”或“键值对对象”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遍历
HashMap底层是哈希表结构的
依赖hashCode方法和equals方法保证键的唯一
如果键储存的是自定义对象,需要重写hashCode和equals方法
如果值存储的时自定义对象,不需要重写hashCode和equals方法
LinkedHashMap
有键决定的:有序,不重复,无索引
这里的有序是指保证存储和取出的元素顺序一致
原理:底层数据结构依然是哈希表,只是每个键值对又额外的多了一个双链表的机制记录存储的顺序
TreeMap
TreeMap跟TreeSet底层原理一样,都是红黑树结构的
由键决定特性:不重复,无索引,可排序
可排序:对键进行排序
TreeMap默认按照间的从小到大进行排序,也可以自己规定的排序规则
代码书写两种排序规则
实现Comparable接口,指定比较原则
创建集合时传递Comparator比较器对象,指定比较规则
可变参数
可变参数本质就是一个数组
作用:在形参中接收多个数据
格式:数据类型 ....参数名称 例int.....a
注意: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——双列集合的更多相关文章
- JAVA双列集合HashMap
HashMap 双列集合HashMap是属于java集合框架3大类接口的Map类, Map接口储存一组成对的键-值对象,提供key(键)到value(值)的映射.Map中的key不要求有序,不允许 ...
- java oop 单列 双列 集合, 迭代器 的使用和说明
一.集合(Collection) (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组 而数组的长度固定, ...
- Java之Map接口(双列集合)
Map集合概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对 ...
- Java中的集合(七)双列集合顶层接口------Map接口架构
Java中的集合(七)双列集合顶层接口------Map接口 一.Map接口的简介 通过List接口,我们知道List接口下的集合是单列集合,数据存储是单列的结构.Map接口下是一个键值对(key-v ...
- 双列集合Map的嵌套遍历
双列集合Map的嵌套使用,例如HashMap中还有一个HashMap,这样的集合遍历起来稍微有点儿复杂.例如一个集合:HashMap<Integer,HashMap<String,Inte ...
- 获取单列集合,双列集合,数组的Stream流对象以及简单操作
获取流对象 获取单列集合,双列集合,数组的流对象 单列集合获取流对象: 1.java.util.Collection接口中加入了default方法stream()获取流对象,因此其所有实现类均可通过此 ...
- HashMap -双列集合的遍历与常用的方法
package cn.learn.Map; /* java.util.Hashtable<k,y> implements Map<k,v> 早期双列集合,jdk1.0开始 同步 ...
- Day 9:双列集合Map及实现该接口的类的常用方法
为什么要学双列集合? 因为单列集合无法处理映射关系,会有成对出现的数据 Map接口 如果是实现了Map接口的集合类,具备的特点: 存储的数据都是以键值对的形式存在的,键不可重复,值可以重复 Map接 ...
- (10)集合之双列集合Map,HashMap,TreeMap
Map中的元素是两个对象,一个对象作为键,一个对象作为值.键不可以重复,但是值可以重复. 看顶层共性方法找子类特有对象. Map与Collection在集合框架中属并列存在 Map存储的是键值对 Ma ...
- 双列集合Map
1.双列集合Map,就是存储key-value的键值对. 2.hashMap中键必须唯一,值可以不唯一. 3.主要方法:put添加数据 getKey---通过key获取数据 keySet- ...
随机推荐
- java checkbox
简介 checkbox code /* * @Author: your name * @Date: 2020-11-04 09:44:08 * @LastEditTime: 2020-11-04 09 ...
- vs code 使用 ssh 远程 链接到 ubuntu 服务器开发
简介 出现了许多问题一一解答 QU1 bad owner or permissions on C:\Users\USER/.ssh/config An1 取消继承的权限,然后增加自己用户的权限 具体参 ...
- 在Windows和Linux终端下使用代理的方式
背景 在快乐上网的时候,网页会经过代理,但是有些在终端运行的程序不一定会经过代理,比如用git clone github仓库的时候,或者curl 下载github release的时候,如果不走代理, ...
- Math-AdvancedAlgebra-行列式
A11 A12 A21 A22
- 手把手搭建 Astro + Github Pages + Github Actions
项目源地址:saicaca fuwari 我实现的效果:https://bxgldh.github.io/ 挑模板挑了很久,个人认为原博主的这个模板非常好看O(∩_∩)O. 但是由于我是小白,在上手初 ...
- c#运用ZeroMq发布订阅和RPC函数代理的优点结合成一个新的实用的通讯
想用ZeroMq的发布订阅者模式,又不想写一大串switch case? 想用RPC函数代理机制,又想多对多进行通讯? 下面就结合二者的优点重新封装一套通讯模块 一.先写ZeroMq的发布订阅这模式 ...
- unity简单http案例 + 服务端
客户端 using System; using System.Collections; using System.Collections.Generic; using System.Net; usin ...
- unity 单位 像素 分辨率 正交摄像机size 之间的关系
这个5表示摄像机的视距 代表摄像机拍摄的一般高度 如果16:9的分辨率,100像素为1 unity单位的情况 填充摄像机所需图片大小尺寸为:高度:5*2*100 = 1000 宽度:1000*1 ...
- go学习笔记:Go 语言标准库中的 sort 包常用方法有哪几种?
1. 基本排序方法 sort.Ints(a []int) 对int类型切片升序排序. sort.Float64s(a []float64) 对float64类型切片升序排序. sort.Strings ...
- Web前端入门第 83 问:JavaScript localStorage 有大小限制吗?溢出会怎样?
本地存储除了 Cookie 外,还有 localStorage 和 sessionStorage,本文一探 localStorage. localStorage 此 API 存入的数据会 永久 保存在 ...