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集合 特点 有序,打印输出的顺序和添加时的顺序一致(不会帮你自动排序) 有下标,可以 ... 
随机推荐
- 一般处理程序ashx接入微信服务器配置
			首先在威信后台填写服务器相关配置,这里按照说明直接填写就好了.配置提交前在需要在我们服务端先准备号接受微信请求的url,对请求内容做验证. 1.准备接口配置信息 A.服务器URL 该URL用于开发者接 ... 
- 多线程与高并发(五)—— 源码解析 ReentrantLock
			一.前言 ReentrantLock 是基于 AQS 实现的同步框架,关于 AQS 的源码在 这篇文章 已经讲解过,ReentrantLock 的主要实现都依赖AQS,因此在阅读本文前应该先了解 AQ ... 
- Vue3系列11--Teleport传送组件
			Teleport 是一种能够将我们的模板移动到 DOM 中 Vue app 之外的其他位置的技术,不受父级style.v-show等属性影响,但data.prop数据依旧能够共用的技术:类似于 Rea ... 
- 什么是 DevOps?看这一篇就够了!
			本文作者:Daniel Hu 个人主页:https://www.danielhu.cn/ 目录 一.前因 二.记忆 三.他们说-- 3.1.Atlassian 回答"什么是 DevOps?& ... 
- Apache SeaTunnel (Incubating) 2.1.0 发布,内核重构、全面支持 Flink
			2021 年 12 月 9 日,SeaTunnel (原名 Waterdrop) 成功加入 Apache 孵化器,进入孵化器后,SeaTunnel 社区花费了大量时间来梳理整个项目的外部依赖以确保整个 ... 
- 成为 Apache 贡献者,So easy!
			点击上方蓝字关注 Apache DolphinScheduler Apache DolphinScheduler(incubating),简称"DS", 中文名 "海豚调 ... 
- 在django中前后端传输数据的编码格式(contentType)
			写在前面 在django中,针对前后端传输数据的编码格式,我们主要研究的是post请求:因为get请求传输的数据往往是直接放在url的后面的!如: url?username=zhang&pas ... 
- MapReduce入门实战
			MapReduce 思想 MapReduce 是 Google 提出的一个软件架构,用于大规模数据集的并行运算.概率"Map(映射)"和"Reduce(归约)" ... 
- thinkphp 5 及一下或php项目里实现模糊查询
			想在thinkPHP或者PHP项目实现模糊查询怎么实现呢? 今天在网上搜了一下用 mysql里的 like 就可以实现 怎么用呢? 看代码: 错误用法: where('title','like',$s ... 
- 前端必备的 HTTP 知识
			HTTP 起源 HTTP 是由蒂姆·伯纳斯-李(TimBerners-Lee)于1989年在欧洲核子研究组织(CERN)所发起 其中最著名的是 1999 年 6 月公布的 RFC 2616,定义了 H ... 
