-
Map集合中value()与keySet()、entrySet()区别
2019-07-31 18:36:36KeySet():将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。 keySet():迭代后只能通过get()取keyentrySet(): Set<Map.Entry<K,V...在Map集合中
values():方法是获取集合中的所有的值----没有键,没有对应关系,
KeySet():
将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。 keySet():迭代后只能通过get()取key
entrySet():Set<Map.Entry<K,V>> entrySet() //返回此映射中包含的映射关系的 Set 视图。 Map.Entry表示映射关系。entrySet():迭代后可以e.getKey(),e.getValue()取key和value。返回的是Entry接口 。
下面通过例子看看:
Map<String,String> map = new HashMap<String,String>();
map.put("01", "zhangsan");
map.put("02", "lisi");
map.put("03", "wangwu");
Collection<String> collection = map.values();//返回值是个值的Collection集合
System.out.println(collection);
打印结果:
[zhangsan, lisi, wangwu]
Set<K> keySet() //返回值是个只存放key值的Set集合(集合中无序存放的)
Set<Map.Entry<K,V>> entrySet() //返回映射所包含的映射关系的Set集合(一个关系就是一个键-值对),就是把(key-value)作为一个整体一对一对地存放到Set集合当中的。
一. keySet()方式。
Map<String,String> map = new HashMap<String,String>();
map.put("01", "zhangsan");
map.put("02", "lisi");
map.put("03", "wangwu");
Set<String> keySet = map.keySet();//先获取map集合的所有键的Set集合
Iterator<String> it = keySet.iterator();//有了Set集合,就可以获取其迭代器。
while(it.hasNext()){
String key = it.next();
String value = map.get(key);//有了键可以通过map集合的get方法获取其对应的值。
System.out.println("key: "+key+"-->value: "+value);//获得key和value值
}
二. entrySet()方式:
Map<String,String> map = new HashMap<String,String>();
map.put("01", "zhangsan");
map.put("02", "lisi");
map.put("03", "wangwu");
//通过entrySet()方法将map集合中的映射关系取出(这个关系就是Map.Entry类型)
Set<Map.Entry<String, String>> entrySet = map.entrySet();
//将关系集合entrySet进行迭代,存放到迭代器中
Iterator<Map.Entry<String, String>> it2 = entrySet.iterator();
while(it2.hasNext()){
Map.Entry<String, String> me = it2.next();//获取Map.Entry关系对象me
String key2 = me.getKey();//通过关系对象获取key
String value2 = me.getValue();//通过关系对象获取value
System.out.println("key: "+key2+"-->value: "+value2);
}
虽然使用keyset及entryset来进行遍历能取得相同的结果
但两者的遍历速度是有差别的
keySet():迭代后只能通过get()取key
entrySet():迭代后可以e.getKey(),e.getValue()取key和value。返回的是Entry接口
说明:keySet()的速度比entrySet()慢了很多,也就是keySet方式遍历Map的性能不如entrySet性能好
为了提高性能,以后多考虑用entrySet()方式来进行遍历。 -
Java中get()方法和set()方法
2018-07-31 01:27:17在java中,为了保证数据的安全性,我们会把数据定义为private等(私有、封装),如果想要调用就会用到set()方法与get方法或者构造函数方法。这里说的是第一种方法,set()与get(),既然说到这个,就得说一下封装的...在java中,为了保证数据的安全性,我们会把数据定义为private等(私有、封装),如果想要调用就会用到set()方法与get方法或者构造函数方法。这里说的是第一种方法,set()与get(),既然说到这个,就得说一下封装的概念。
封装:private私有化成员属性,提供公开public的getter/setter
Setter:赋值 Getter:取值,在哪儿用:在构造方法中初始化属性值的用!!!!!或者对象名.set/get()进行使用!!!
好处:隐藏内部实现细节,保证代码的安全,同时也可以提升数据的安全性
访问修饰符,从访问的范围由小及大依次是:private default(当什么都不写默认就是这个) protected public
访问修饰符的作用:可以修饰类、接口、属性和方法。通常可以通过访问修饰符来改变所修饰对象的可访问范围。
基本用法:
import java.util.Scanner; class Stutent1{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void showStu1(){ System.out.println("学生叫做"+name+",年龄"+age); } } public class Stutent1Test { public static void main(String[] args) { Scanner input=new Scanner(System.in); Stutent1 stutent1=new Stutent1(); System.out.println("请输入姓名"); stutent1.setName(input.next()); System.out.println("请输入年龄"); stutent1.setAge(input.nextInt()); stutent1.showStu1(); } }
运行结果:
-
Java8新特性Stream之Collectors(toList()、toSet()、toCollection()、joining()、partitioningBy()、...
2018-10-17 13:54:07Set setResult = language.collect(Collectors.toSet()); setResult.forEach(System.out::println); 输出结果为: 三、用自定义的实现Collection的数据结构收集 List list = Arrays.asList("java", "python", ...将流中的数据转成集合类型:
一、将数据收集进一个列表(Stream 转换为 List,允许重复值,有顺序)//1.将数据收集进一个列表(Stream 转换为 List,允许重复值,有顺序) //创建流 Stream<String> language = Stream.of("java", "python", "C++","php","java"); List<String> listResult = language.collect(Collectors.toList()); result.forEach(System.out::println);
//2.stream()代替流 List<String> list = Arrays.asList("java", "python", "C++","php","java"); List<String> listResult = list.stream().collect(Collectors.toList()); listResult.forEach(System.out::println);
输出结果为:
二、将数据收集进一个集合(Stream 转换为 Set,不允许重复值,没有顺序)//1.将数据收集进一个集合(Stream 转换为 Set,不允许重复值,没有顺序) Stream<String> language = Stream.of("java", "python", "C++","php","java"); Set<String> setResult = language.collect(Collectors.toSet()); setResult.forEach(System.out::println);
输出结果为:
三、用自定义的实现Collection的数据结构收集List<String> list = Arrays.asList("java", "python", "C++","php","java"); //用LinkedList收集 List<String> linkedListResult = list.stream().collect(Collectors.toCollection(LinkedList::new)); linkedListResult.forEach(System.out::println); System.out.println("--------------"); //用CopyOnWriteArrayList收集 List<String> copyOnWriteArrayListResult = list.stream().collect(Collectors.toCollection(CopyOnWriteArrayList::new)); copyOnWriteArrayListResult.forEach(System.out::println); System.out.println("--------------"); //用TreeSet收集 TreeSet<String> treeSetResult = list.stream().collect(Collectors.toCollection(TreeSet::new)); treeSetResult.forEach(System.out::println);
输出结果为:
四、对Stream的字符串拼接List<String> list = Arrays.asList("java", "python", "C++","php","java"); //直接将输出结果拼接 System.out.println(list.stream().collect(Collectors.joining())); //每个输出结果之间加拼接符号“|” System.out.println(list.stream().collect(Collectors.joining(" | "))); //输出结果开始头为Start--,结尾为--End,中间用拼接符号“||” System.out.println(list.stream().collect(Collectors.joining(" || ", "Start--", "--End")));
输出结果为:
五、其他还有partitioningBy(),分类成一个key为True和Flase的Map。例如List<String> list = Arrays.asList("java", "python", "C++","php","java"); Map<Boolean, List<String>> result = list.stream().collect(partitioningBy(s -> s.length() > 2));
六、collectingAndThen(),收集之后继续做一些处理。例如
List<String> list = Arrays.asList("java", "python", "C++","php","java"); //收集后转换为不可变List ImmutableList<String> collect = list.stream().collect(Collectors.collectingAndThen(Collectors.toList(), ImmutableList::copyOf));
总结:
-
list(set())的作用
2019-09-03 10:13:43list(set())的功能是:对原列表去重并按从小到大排序。 如下例所示: a = ['f','s',3,3,4,2,'d',4,5,6,1] a = list(set(a)) print(a) 经过list(set())之后的a列表变成了: [1, 2, 3, 4, 5, 6, 'd', 'f', 's'] ...list(set())的功能是:对原列表去重并按从小到大排序。
如下例所示:a = ['f','s',3,3,4,2,'d',4,5,6,1] a = list(set(a)) print(a)
经过list(set())之后的a列表变成了:
[1, 2, 3, 4, 5, 6, 'd', 'f', 's']
-
Java中set(),get()方法中的getName()、setName()、getAge()、setAge()
2019-12-07 19:13:56set(),get()方法的理解 为什么要用set(),get()方法 在我们实例化一个类对象的时候,要对这个类对象的属性进行赋值,并且输出这个类的属性。 举一个例子: 假如定义了一个Person类,要对Person类中的名字,年龄... -
new Set()的基础用法(ES6)
2020-08-03 21:16:481、什么是Set() 似于数组,但它的一大特性就是所有元素都是唯一的,没有重复。 我们可以利用这一唯一特性进行数组的去重工作。 2、常用方法 2.1 添加元素(与对象添加元素一致 Object.key = value) let list=new Set... -
get()和set()的基本用法
2018-03-31 12:30:24使用前提:当要访问被private封装的属性时 之所以用private封装,又对外提供访问方式(set get),是因为可以在访问方式中加入逻辑判断等语句,对访问... public int getAge(){//获取private权限下的age//4. retur... -
php类的__set()、__get()、__isset()、__unset()、__call()、__callStatic()、__invoke()
2019-03-26 09:45:001.__set()、__get() 应用 通过类中定义__set()、__get()魔术方法可以避免多个成员变量重复去定义get、set方法。 使用原理当外部设置 $UserAppIndex->username=‘华山论剑’; 时调用 __set() 。 当 $... -
es6的一些笔记(数组去重,new Set())
2018-04-18 13:38:15new Set(),用来去重数组。let arr = [1, 2, 2, 3];let set = new Set(arr);let newArr = Array.from(set);console.log(newArr); // [1, 2, 3]Set类似于数组,区别在于它所有的成员都是唯一的,不能有重复的值... -
python学习之list(set())函数
2020-04-10 11:25:52list(set())函数:对原列表去重并按从小到大排序 例如: a = ['f','s',3,3,4,2,'d',4,5,6,1] a = list(set(a)) print(a) [1, 2, 3, 4, 5, 6, 'd', 'f', 's'] 原理:set(a)将列表a转换为集合,集合是一个包含不重复... -
isset()和empty()区别
2018-08-18 09:04:41isset — 检测变量是否已设置并且非 NULL bool isset ( mixed $var [, mixed $... ] ) 检测变量是否设置,并且不是 NULL。 如果已经使用 unset() 释放了一个...如果一次传入多个参数,那么 isset() 只有在全部参数... -
说说vue.set() (this.$set) 的用法
2018-11-02 16:59:01这段时间工作上经常操作数组数据,并且要求实时更新视图数据,这个时候首先想到的是 vue.set() 方法(注:当发现model上的数据发生改变,而页面上的视图数据没有改变,推荐使用该方法。),该方法的使用首先要在页面... -
Python中的set()函数使用
2019-02-27 22:24:37set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。 语法 set 语法: class set([iterable]) 参数说明: iterable – 可迭代对象对象; 返回值 返回新的集合对象。... -
set() 去重原理
2019-06-13 12:46:02众所周知,set() 是 Python 中的"天然去重因子"。对一串数据如:lyst = [1, 1, 2, 4, 4],我们常常 set 一下,也就是:set(lyst),达到去重目的。 那么,set() 是如何去重的呢? 自定义的数据结构 为了贴合实际的... -
MYSQL JSON的操作函数 -- JSON_SET (), JSON_INSERT(), and JSON_REPLACE()
2019-07-02 19:59:33InMySQL, 有一些函数可以帮我们处理JSON类型包括:JSON_SET(),JSON_INSERT(), andJSON_REPLACE()函数. 语法 三种函数的语法: JSON_SET(json_doc, path, val[, path, val] ...) JSON_INSERT(json_doc, path, ... -
Collections的emptyList() emptyMap() emptySet()
2016-09-03 23:43:50Collections的emptyList() emptyMap() emptySet()在看Collections时看到这三个方法Collections.emptySet() Collections.emptyList() Collections.emptyMap() 会生成指定类型的空List Set Map,而且是不可变的,如... -
python的set()函数
2018-08-16 11:19:39set() 函数创建一个无序不重复元素的集合,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等,返回新的集合对象 a=['1','2','3','2','2','3']#定义一个list b=set(a) print(b) #set(['1', '3', '2']) ... -
isset(), empty()和is_null()的区别
2017-11-17 13:00:55isset(), empty()和is_null()的区别 1)isset — 检测变量是否已设置且非 NULL则返回TRUE; 注意的是 null 字符("\0")并不等同于 PHP 的 NULL 常量。 如果已经使用 unset() 释放了一个变量之后,... -
python:set()
2018-03-30 14:10:32在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种。创建集合set、集合set添加、集合删除、交集、并集、差集的操作都是非常实用的方法。 b= {'b','c'} print(b) a = ... -
Python 使用set()去除列表重复
2018-05-14 10:08:301.对List重复项,可以使用set()去除重复 a = [5, 2, 5, 1, 4, 3, 4,1,0,2,3,8,9,9,9] print(list(set(a))) #将去掉重复的项后,再重新转成list 最后的执行结果 F:\Python\venv\Scripts\python.exe F:/Python/... -
ArrayList中set()和add()中你不知道的坑
2018-12-10 09:23:03一般使用List集合,估计都是使用这个ArrayList,一般呢也就是简单遍历数据和存储数据。...set()是更新,更新指定下标位置的值。 add()是添加,区别于一般的add(E e),这个就是有个位置的概念,特殊位... -
vue中this.$set()原理
2019-08-21 21:42:00参考文献: [1] 从vue源码看Vue.set()和this.$set() -
python set()函数讲解
2018-09-14 10:24:02set 是一个不允许内容重复的组合,而且set里的内容位置是随意的,所以不能用索引列出。可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。 1、创建set集合 ...set() #创建一个空set... -
php 中__set()和__get()的具体用法
2019-01-09 19:10:05__set() 方法用于设置私有属性值。 __get() 方法用于获取私有属性值。 __isset() 方法用于检测私有属性值是否被设定。 __unset() 方法用于删除私有属性。 __set()与__get()是两个魔术方法,用于设置和输出... -
python set() 用法
2018-03-22 11:49:01set() 函数是python内置函数的其中一个,属于比较基础的函数。创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。class set([iterable])参数说明:iterable -- 可迭代对象... -
Android中set()和get()方法的想法
2018-06-02 08:15:11以后会将自己学习路上的一些想法记录下来,希望有一日也能帮到和我一样迷茫过的人,不管怎么样希望自己不忘初心一直走下去set()和get()方法是开发中常用的方法,一般写在Bean里面今天在开发中发现一个问题就是我在... -
Hive中的explode()函数和collect_set()函数
2017-12-01 09:49:56最近在Hive中查询测试数据用到explode()函数比较多,所以今天整理一下,方便以后查阅。 1.substr()函数 substr()是字符串截取函数,其语法为: substr(string A, int start, int len),返回值为 string类型。说明... -
python 中的set()函数
2018-09-18 15:06:50在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种。创建集合set、集合set添加、集合删除、交集、并集、差集的操作都是非常实用的方法。 b= {'b','c'} print(b) a = ... -
Python 线程通信(wait(), set())
2017-10-13 19:47:16import threading import time def goevent(): e=threading.Event()#事件 ... e.wait() #等待,后续代码不再执行,等待set再执行。让线程有序执行 print("go") threading.Thread(target=go).start()#
-
Kubernetes下日志采集、存储与处理技术实践
-
2016年上半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
C/C++ FIFO queue - 先进先出队列
-
2021-02-25
-
龙芯生态应用开发基础:C语言精要
-
Markdown 标记语言
-
2015年下半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
两种新的具有最优修复的2位奇偶校验MDS阵列代码
-
2021-02-25
-
二叉树搜索树(无左旋右旋)C 迭代寻找插入
-
需求分析与建模最佳实践
-
C++MFC开发远程控制软件教程(VS2013)
-
docker基本使用教程, 以及docker部署flask框架示例
-
关于绝热演化的一般模型
-
2019年下半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
笔记
-
深究字符编码的奥秘,与乱码说再见
-
leetcode算法第四题
-
iptables 企业级防火墙配置(四表五链)
-
FyreString:FyreString是PHP的免费开源字符串实用程序库-源码