java集合框架复习----(4)Map、List、set
五、Map集合【重要】

特点:
- 用于存储任意键值对(k-v)
- key不能重复,唯一。无序、无下标
- value可以重复。无序、无下标
1、hashMap
存储结构:哈希表(数组+链表+红黑树)
方法:
- put(k,v);存入
- get(k);取值
- containsKey();判断是否包含key
- containsValue();判断 是否包含value
- entrySet();返回映射关系中包含的映射视图
- keySet();返回映射关系中包含的键的映射视图
package com.zheng.demo4;
import javax.lang.model.element.NestingKind;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class MyMap {
public static void main(String[] args) {
//1、创建集合
Map<String, String> map = new HashMap<>();
//2、塞入值
map.put("A", "我是A");
map.put("B", "我是B");
map.put("C", "我是C");
map.put("D", "我是D");
//判断
System.out.println(map.containsKey("A"));
System.out.println(map.containsValue("我是C"));
System.out.println("map集合大小:" + map.size());
System.out.println("打印:" + map.toString());
//遍历1、使用keyset
System.out.println("=======使用keyset=======");
Set<String> set = map.keySet();
for (String s : set) {
System.out.println(s + "=======" + map.get(s));
}
System.out.println("=======使用entryset=======");
Set<Map.Entry<String, String>> entries = map.entrySet();
for (Map.Entry<String, String> entry : entries) {
System.out.println(entry.getKey() + "========" + entry.getValue());
}
//简化
System.out.println("+===简化====+");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + "========" + entry.getValue());
}
}
}


jdk1.8后当链表长度大于8,转化为红黑树存储
jdk1.8后,当链表长度小于6,转化为链表存储
map集合的实现类
- HashMap
jdk1.2版本,线程不安全,运行快;允许null为key或者value - Hashtable
jdk1.0版本,线程安全,运行慢,不允许null为key或者value - properties
Hashtable的子类,使用String作为key或者value.通常用于配置文件的读取
六、Collections工具类
package com.zheng.demo5;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class MyCollection {
public static void main(String[] args) {
List arrayList = new ArrayList();
arrayList.add(4);
arrayList.add(1);
arrayList.add(5);
arrayList.add(3);
arrayList.add(6);
arrayList.add(2);
System.out.println(arrayList.toString());
System.out.println("调用排序工具类");
//调用工具类排序
Collections.sort(arrayList);
System.out.println(arrayList.toString());
}
}

总结
集合的概念
对象的容器,和数组相似,定义了多个对象进行操作的常用方法
List集合
有序、有下标、元素可以重复(ArrayList,LinkedList,Vector)
set集合:
无序、无下标、元素不可重复(HashSet,TreeSet)
Map集合
存储一对数据,无序,无下标,键不可重复,值可以重复(HashMap,HashTable,TreeMap)
Collection
s:
- 集合工具类,定义了除存取以外的集合常用方法
java集合框架复习----(4)Map、List、set的更多相关文章
- Java集合框架List,Map,Set等全面介绍
Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I] +--java.util.ArrayList [C] +- ...
- 【转】Java集合框架List,Map,Set等全面介绍
原文网址:http://android.blog.51cto.com/268543/400557 Java Collections Framework是Java提供的对集合进行定义,操作,和管理的包含 ...
- 34、Java集合框架List,Map,Set等全面介绍(转载)
Java Collections Framework是Java提供的对集合进行定义,操作,和管理的包含一组接口,类的体系结构. Java集合框架的基本接口/类层次结构: java.util.C ...
- java集合框架复习(一)
数组类Array是java中最基本的一个存储结构,它用于存储 一组连续的对象或一组类型相同的基本类型的数据. Array特点:效率高,但容量固定且无法动态改变, 缺点:无法判断其中存有多少元素,len ...
- java集合框架复习
数组类Array是java中最基本的一个存储结构,它用于存储 一组连续的对象或一组类型相同的基本类型的数据. Array特点:效率高,但容量固定且无法动态改变, 缺点:无法判断其中存有多少元素,len ...
- java 集合框架(十六)Map
一.概述 Map是一个包含键值对的集合,一个map不能有重复的键(key),而且每个键至多只能对应一个值.Map同Collection一样,它的所有通用实现都会提供一个转换器构造函数,接收一个Map类 ...
- java集合框架复习----(3)Set
文章目录 四.set集合 1.hashSet[重点] 2.TreeSet 四.set集合 无序.无下标.元素不可重复 1.hashSet[重点] == 数组+链表+红黑树== 基于hashcode计算 ...
- java集合框架复习----(1)
文章目录 1 .集合框架思维导图 一.什么是集合 二.collection接口 1 .集合框架思维导图 一.什么是集合 存放在java.util.*.是一个存放对象的容器. 存放的是对象的引用,不是对 ...
- java集合框架复习----(2)List
文章目录 三.List集合 listIterator:迭代器 List实现类 1.泛型类 2.泛型接口 三.List集合 特点 有序,打印输出的顺序和添加时的顺序一致(不会帮你自动排序) 有下标,可以 ...
随机推荐
- [LNOI2022]盒
\(LNOI2022\)盒 由于是加的形式,那么可以套路的拆贡献,枚举每条边的贡献就好了 \(40pts\) //比较显然的事情 //首先确定了一个B数组之后 //最小的移动应该是 //设左右两侧比原 ...
- Docker 11 自定义镜像
参考源 https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0 https://www.bilibili.com/vid ...
- git使用的一些坑和新得(一)
这是一个坑 你要知道作为一个新手对git的使用还处于摸索状态 今天就将这样的坑分享给大家 昨天,接到任务将代码发到远程仓库里.于是,我就天真的按步骤提交了! 然后就: To https: ! [rej ...
- [题解]Balance
1.题目 POJ-1837 2.题目大意 一个天平上有一些钩子,现在有一些砝码.给出每个钩子到原点(姑且这么叫吧)的距离(-15 ~ 15,负数代表在左边,正数相反)以及砝码的重量(1 ~ 20),求 ...
- 深入理解 Spring 事务:入门、使用、原理
大家好,我是树哥. Spring 事务是复杂一致性业务必备的知识点,掌握好 Spring 事务可以让我们写出更好地代码.这篇文章我们将介绍 Spring 事务的诞生背景,从而让我们可以更清晰地了解 S ...
- 1.5_HTML基础标签实战演练
基本的 HTML 标签 HTML 标题 HTML 标题(Heading)是通过 <h1> - <h6> 等标签进行定义的. <h1>This is a headin ...
- dotnet 设计规范 · 数组定义
✓ 建议在公开的 API 使用集合而不是数组.集合可以提供更多的信息. X 不建议设置数组类型的字段为只读.虽然用户不能修改字段,但是可以修改字段里面的元素.如果需要一个只读的集合,建议定义为只读集合 ...
- API接口签名校验(C#版)
我们在提供API服务的时候,为了防止数据传输过程被篡改,通常的做法是对传输的内容进行摘要签名,把签名串同参数一起请求API,API服务接收到请求后以同样的方式生成签名串,然后进行对比,如果签名串不一致 ...
- 防止一台logstash机器上接入多个端口的日志会产生混乱
为了防止一台机器上多个接入会导致日志混乱所以地在各模块上添加type标识并作if判断! 不多比比直接上配置 [root@sf215 conf.d]# cat jddns-servers.conf in ...
- day38-IO流05
JavaIO流05 4.常用的类04 4.4节点流和处理流03 4.4.8打印流-PrintStream和PrintWriter 打印流只有输出流,没有输入流 1.简单介绍及应用 PrintStrea ...