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. Java利用FastJson一行代码转List<Map>为List<Bean>

    /** * 字符串 -> json对象.实体对象.Map.List.List<Map> */ // 字符串 -> json对象 JSONObject json = JSON.p ...

  2. 开启和关闭oracle数据库中的审计功能

    第1步:查看审计功能是否开启?SQL> show parameter audit;NAME                                 TYPE        VALUE-- ...

  3. 解决request.getSession().getServletContext().getRealPath("/")为null问题

    今天把程序部署到服务器,发现异常,FileNotFound异常,很快定位到getServletContext().getRealPath("/");返回空的问题.这个问题通常是传递 ...

  4. 人脸替换(FaceSwap)的一些思考

    本文链接:https://blog.csdn.net/cy1070779077/article/details/85224347人脸替换(FaceSwap)的一些思考 最一开始,我使用了openCV( ...

  5. 通过遍历而非排序求最值 python list in 时间复杂度 列表元素存在性

    Write a function: def solution(A) that, given an array A of N integers, returns the smallest positiv ...

  6. linux下终端字体彩色显示

     linux下python彩色显示   跨平台彩色显示库https://pypi.python.org/pypi/colorama   jlive@MacBook-Pro:py_demo $pytho ...

  7. flutter GridView 网格布局

    当数据量很大的时候用矩阵方式排列比较清晰.此时我们可以用网格列表组件 GridView 实 现布局. GridView 创建网格列表有多种方式,常用有以下两种. 1.可以通过 GridView.cou ...

  8. ISO/IEC 9899:2011 条款6.5.16——赋值操作符

    6.5.16 赋值操作符 语法 1.assignment-expression: conditional-expression unary-expression    assignment-opera ...

  9. C#操作Access时Parameters集合的使用方法(转)

    按照C#操作Sql Server数据库的方式是不一样的,使用时发现占位符数据会混乱. 查阅相关资料及测试后,总结出这样一套使用方法. 方法: public bool TsqlExecute(strin ...

  10. GNU C之__attribute__

    __attribute__可以设置函数属性(Function Attribute).变量属性(Variable Attribute)和类型属性(Type Attribute) __attribute_ ...