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集合 特点 有序,打印输出的顺序和添加时的顺序一致(不会帮你自动排序) 有下标,可以 ...
随机推荐
- NC20242 [SCOI2005]最大子矩阵
题目链接 题目 题目描述 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大. 注意:选出的k个子矩阵 不能相互重叠. 输入描述 第一行为n,m,k(1 ≤ n ≤ 100 ...
- Luogu3092 [USACO13NOV]没有找零No Change (状压DP)
将金币状压,然后就没多说的了. #include <iostream> #include <cstdio> #include <cstring> #include ...
- 使用二手 gopro 做行车记录仪
背景 自打开了博客以后,一直在写技术说明文,今天打算写点程序以外的东西换换味口.前段时间在某鱼上以 300 元的价格入手了一套完整的 gopro3+ 运动摄像头,带一张 32G SD 卡,两块备用电池 ...
- Ceph 块存储 创建的image 映射成块设备
将创建的volume1映射成块设备 [root@mysql-server ceph]# rbd map rbd_pool/volume1 rbd: sysfs write failed RBD ima ...
- mongo数据同步的三种方案
(一)直接复制data目录(需要停止源和目标的mongo服务)1.针对目标mongo服务已经存在,并正在运行的(mongo2-->mongo).执行步骤:(1).停止源/目标服务器的mongo服 ...
- Word 常识备忘录
一句科普 名词解释 左右页边距 正文到纸左右两边之间的间距. 分页符 分页符是分页的一种符号,上一页结束以及下一页开始的位置. 分栏符 分栏的页面使用分栏符可以使一列分栏的段落排列到另一栏. 邮件合并 ...
- Spring 04: IOC控制反转 + DI依赖注入
Spring中的IOC 一种思想,两种实现方式 IOC (Inversion of Control):控制反转,是一种概念和思想,指由Spring容器完成对象创建和依赖注入 核心业务:(a)对象的创建 ...
- 从零开始Blazor Server(12)--编辑菜单
上个星期有点事,导致没法及时更新.现在我们继续更我们的从零开始系列. 这个系列也快要结束了,目前规划再有2-3篇,就结束了. 今天我们来说编辑菜单的问题,说实话菜单这种东西,你不更新代码加个页面,单独 ...
- 未完待续【java】JavaEE学习路线总览
这个博客会详细介绍各种技术的知识点,从零基础到入门,充当引路的作用. 同时也会发布一些Swift语言.c#语言.Xcode开发的学习笔记.一些阅读的笔记(部分读书笔记无法发布). 目前1-43的Jav ...
- 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(16)-Fiddler如何充当第三者,再识AutoResponder标签-上篇
1.简介 Fiddler充当第三者,主要是通过AutoResponder标签在客户端和服务端之间,Fiddler抓包,然后改包,最后发送.AutoResponder这个功能可以算的上是Fiddler最 ...