Map:

在运用map和set

集合之前首先要弄清楚它们的基本定义是什么。

简介:map是一种关联式容器,但是她储存方式是以键值对(key/value)存在的。

Map用法:

定义Map集合并往集合中加入几个元素:

    //map 键值对 json格式 根据你的键名来获取对应的值
Map<String, Object> map=new HashMap<>();
map.put("ht", "邵阳");
map.put("hxc","永州");
map.put("zsy", "岳阳");
map.put("cpc", "株洲");
System.out.println(map);//輸出map中添加的值

有的时候值插入过多就会出现重复值得问题是什么样子,那要怎么解决呢?

key相同则覆盖values的值 以最后加入进去的值为真

Map<Integer,Object> map2=new HashMap<>();
//避免出现重复的健
for (int i = ; i <; i++) {
if (map2.containsKey(i)) {
map2.put(i, "z"+i);
}
}

如果值value相同 而key不同 又会成为什么问题?

当键值对中的值相同而健不同,你可以同时创建2个输出发现

键值对只和健有关,与值不相关。

用方法Map.entrySet(),接口Map.Entry去映射输出Map中键值(因为接口中提供getKey与getValue方法)

//用Map.Entry接口与Map.entrySet()方法映射
for (java.util.Map.Entry<Integer,Object> emp :map2.entrySet()) {
System.out.println("key"+emp.getKey()+"values:"+emp.getValue());
}
System.out.println(map2);

Set:

简介:set也是一种关联式容器,不过它的容器底层实现原理是黑红树;

红黑树是一颗近似平衡的搜索二叉树,在对元素的查找中有很高的效率。

Set用法:

定义一个Set集合并往其中添加几条元素:

Set<String> set=new TreeSet();
//添加几个元素
set.add("ht");
set.add("zs");
set.add("jk");
set.add("hf");
set.add("qq");

set一般遵循自然排序(26个英文字母),Set集合的值是不可重复的,若是重复那么他就成了无序。

迭代器输出元素

//迭代器输出
Iterator<String> iterator=set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}

for循环遍历元素

//循环遍历输出
for (String s : set) {
System.out.println(s);
}

自定义排序

//自定义排序器
Set<Person> set2=new TreeSet<>(new Age());
//equals比较的是内存的地址,而不是对象属性
// System.out.println(new Person(1,"青灯",17).equals(new Person(1,"青灯",17)));
set2.add(new Person(,"青灯",));
set2.add(new Person(,"青灯",));
set2.add(new Person(,"青灯",));
set2.add(new Person(,"青灯",));
set2.add(new Person(,"青灯",));
//foreach的底层原理就是迭代器
for (Person p : set2) {
//默认转换为String的类型
System.out.println(p);
}

谢谢观看!

Map、Set的基本概括的更多相关文章

  1. go sync.map源码解析

    go中的map是并发不安全的,同时多个协程读取不会出现问题,但是多个协程 同时读写就会出现 fatal error:concurrent map read and map write的错误.通用的解决 ...

  2. perf 高级命令简介

    perf 高级命令简介 1.使用 tracepoint 当 perf 根据 tick 时间点进行采样后,人们便能够得到内核代码中的 hot spot. 使用ls命令来演示 sys_enter 这个tr ...

  3. perf之sched

    如果你对你的进程的响应时间极其苛刻,有一天你发现你的进程响应时间变慢了,而恰好这个机器上也有其他的进程在跟你的进程争用CPU,你想看看你的进程被内核调度的情况,那么你需要用perf-sched工具. ...

  4. Perf -- Linux下的系统性能调优工具,第 2 部分 特殊用法以及内核调优示例

    https://www.ibm.com/developerworks/cn/linux/l-cn-perf2/ 本文内容简介 之前介绍了 perf 最常见的一些用法,关注于 Linux 系统上应用程序 ...

  5. (转)Shadow Map & Shadow Volume

    转自:http://blog.csdn.net/hippig/article/details/7858574 shadow volume 这个术语几乎是随着 DOOM3 的发布而成为FPS 玩家和图形 ...

  6. Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)

    概要 学完了Map的全部内容,我们再回头开开Map的框架图. 本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同 转 ...

  7. mapreduce精简概括--转

    mapreduce精简概括 We want to count all the books in the library. You count up shelf #1, I count up shelf ...

  8. Set 和 Map 数据结构

    Set Set 对象允许你存储任何类型的 唯一值, 无论是 原始值(一共6种,string, number, boolean, undefined, null,和 es6 新增的 symbol) 还是 ...

  9. 【Scala篇】--Scala中集合数组,list,set,map,元祖

    一.前述 Scala在常用的集合的类别有数组,List,Set,Map,元祖. 二.具体实现 数组   1.创建数组 new Array[Int](10) 赋值:arr(0) = xxx Array[ ...

随机推荐

  1. 范仁义web前端介绍课程---4、html、css、js初体验

    范仁义web前端介绍课程---4.html.css.js初体验 一.总结 一句话总结: html:就是网站的骨架,比如div标签.a标签等 css:style标签或者style属性里面的就是css j ...

  2. JAVA基础之访问控制权限

    包:库单元 1.当编写一个Java源代码文件时,此文件通常被称为编译单元(有时也被称为转译单元). 2.每个编译单元都必须有一个后缀名.java,而在编译单元内则可以有一个public类,该类名称必须 ...

  3. JS实现文字向上无缝滚动轮播

    效果图: 全部代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  4. JVM 字节码的结构

    编译的.class文件,可以用javap进行反编译 javap Test.class javap -c Test.class javap -verbose Test.class 1.创建MyTest1 ...

  5. kafka笔记博客

    大数据数据流组件选择: https://www.cnblogs.com/yinzhengjie/articles/11155051.html 初识Apache Kafka 核心概念: https:// ...

  6. DialogFragment: DialogFragment的一些理解

    Android 自3.0版本引入了DialogFragment这个类,并推荐开发者使用这个类替代之前经常使用的Dialog类,那么DialogFragment相对于之前的Dialog究竟有什么优势呢? ...

  7. 代替ESXI的虚拟机解决方案proxmox

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/matengbing/article/de ...

  8. shell编程系列26--大型脚本工具开发实战

    shell编程系列26--大型脚本工具开发实战 大型脚本工具开发实战 拆分脚本功能,抽象函数 .function get_all_group 返回进程组列表字符串 .function get_all_ ...

  9. CharUtil

    package com.opslab.util; import java.io.UnsupportedEncodingException; /** * Various character and ch ...

  10. 【Java】Junit快速入门

    Junit介绍 JUnit是一个Java语言的单元测试框架.它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个. JUnit ...