【Java集合(二)--------------Map接口】教程文章相关的互联网学习教程文章

Java mapToInt vs Reduce with map【代码】

我一直在阅读有关reduce并且刚刚发现有一个3参数版本可以基本上执行map reduce这样:String[] strarr = {"abc", "defg", "vwxyz"};System.out.println(Arrays.stream(strarr).reduce(0, (l, s) -> l + s.length(), (s1, s2) -> s1 + s2));但是我无法通过reduce来看到mapToInt的优势.System.out.println(Arrays.stream(strarr).mapToInt(s -> s.length()).reduce(0, (s1, s2) -> s1 + s2));两者都产生12的正确答案,并且两者似乎并行...

java中遍历map的四种方法【图】

>> ' rel='nofollow' target='_blank'>2019独角兽企业重金招聘Python工程师标准>>> 1、最常见的并且在大多数情况下也是最可取的遍历方式 键值都需要时使用2、for-each循环中遍历keys或values 通过keySet或values来实现遍历,而不是用entrySet 比entrySet遍历在性能上稍好(快了10%),而且代码更加干净3、使用Iterator遍历 可以在遍历时调用iterator.remove()来删除entries,另两个方法则不能(迭代器特性) 性能方面看,该方法类...

java – 我可以通过Keyset修改Map【代码】

我正在尝试将过滤器应用于Map.目的是仅保留作为集合一部分的那些键.以下实现确实提供了所需的结果,但我想知道这是否是正确的方法?private void filterProperties(Map<String, Serializable> properties, Set<String> filterSet) {Set<String> keys = properties.keySet();keys.retainAll(filterSet); }解决方法:是!The set is backed by the map, so changes to the map are reflected in the set, and vice-versa (见:http://do...

Java Map类,可以包含一个值的两个或多个键【代码】

我正在寻找一个可以包含一个值的两个或更多键的Java Map类.它几乎像apache常见集合中的MultiKeyMap,但它只能使用其中一个键来检索值而不是使用所有键. 例如,使用键“key1”和“key2”在地图中为值“Hello World”创建一个条目:map.put("Hello World", "key1", "key2");然后,如果我想获得价值,我可以使用两种可能的方式:String value = map.get("key1");要么String value = map.get("key2");在MultiKeyMap中,您需要指定所有键来检...

java – 如何使用Jackson将JSON解析为带小写键的Map?【代码】

我正在使用Jackson(1.9.x)库将JSON解析为Map:ObjectMapper mapper = new ObjectMapper(); Map<String,Object> map = (Map<String,Object>) mapper.readValue(jsonStr, Map.class);有没有办法告诉杰克逊解析器小写所有键的名称?我尝试使用Jackson PropertyNamingStrategy,但这不起作用 – 它似乎只有在映射到某个bean而不是Map时才有用. 澄清: >我不想为JSON预先创建bean – 我只想要动态地图>进入的JSON键不会是小写,但我希望所...

双重检查锁定是否与Java中的最终Map一起使用?【代码】

我正在尝试实现一个线程安全的Map缓存,我希望缓存的字符串被懒惰地初始化.这是我在实施中的第一次传递:public class ExampleClass {private static final Map<String, String> CACHED_STRINGS = new HashMap<String, String>();public String getText(String key) {String string = CACHED_STRINGS.get(key);if (string == null) {synchronized (CACHED_STRINGS) {string = CACHED_STRINGS.get(key);if (string == null) {string ...

Java 8流将List项减少并组合到Map【代码】

我需要使用name1 / 2求和值value1 / 2的键创建映射. 什么可能是使用java 8流重写这个最干净的方法?class Item {private String name1;private Integer value1;private String name2;private Integer value2;public Item(final String name1, final Integer value1, final String name2, final Integer value2) {this.name1 = name1;this.value1 = value1;this.name2 = name2;this.value2 = value2;}//getters and setters }List<I...

使用java 8按任意间隔对Map进行分组【代码】

我有数据表示为正双数列表,以及包含将用于分组数据的间隔的列表.间隔始终排序.我尝试使用以下实现对数据进行分组List<Double> data = DoubleStream.generate(new Random()::nextDouble).limit(10).map(d -> new Random().nextInt(30) * d).boxed().collect(Collectors.toList());HashMap<Integer, List<Double>> groupped = new HashMap<Integer, List<Double>>();data.stream().forEach(d -> {groupped.merge(getGroup(d, group),...

java – 从Map中找到的值与相同的hashcode和equals不一致【代码】

也许不是最好的标题,请随时编辑它. 这是我的代码..import java.util.Map; import java.util.HashMap;public class App {public static void main(String[] args) {final Foo foo = new Foo();final Foo bar = new Foo();System.out.println("foo equals foo: " + foo.equals(foo));System.out.println("foo equals bar: " + foo.equals(bar));System.out.println("foo hashcode: " + foo.hashCode());System.out.println("bar hash...

Java 8:过滤数组(NxM)以创建Map>

我想将NxN数组映射到Java 8中的Map. 这个想法是每个[i] [0]元素都是一个键,并且每个[i] [j] j> 0都是映射中每个键的值列表. 谢谢你的帮助.

在Java流中使用collectors.groupingBy修改返回的Map值类型【代码】

我在条目的类定义之下 – public class Entry {private String key;private String Value;// getters and setters// equals hashcode toString }我从数据库中获得了Entry对象列表.我想根据结果的键和值对它们进行分组Map应该是Set< value>. 我试过并最终得到以下代码.Map<String, Set<Entry>> groupedEntries = entryList.findAll().stream().collect(Collectors.groupingBy(ek -> ek.getKey().toLowerCase(), Collectors.toSet()...

使用Java 8并行流更新从Map原子检索的元素【代码】

我有一个并行流,我正在使用Map来改变元素.Map<Long, List<MyItem>> hashmap = foo.getMap();itemStream.parallel().filter(Objects::nonNull).forEach(item -> setProperties(hashmap, item));方法’setProperties()’获取map和item,并执行get using item,然后设置项的一些属性. 我想要的是获取/属性设置以原子方式完成.这样两个线程就无法对相同的密钥执行get操作并且交换属性更新.private void setProperties(Map<Long, List<Ite...

使用流在Java 8中按Map值进行分组【代码】

我有一个地图列表,我想通过使用java流的键名称对它进行分组.[{"dateDebut": "2018-07-01T00:00:00.000+0000","nom": "Julien Mannone","etat": "Impayé"},{"dateDebut": "2018-08-01T00:00:00.000+0000","nom": "Julien Mannone","etat": "Impayé"}, {"dateDebut": "2018-10-01T00:00:00.000+0000","nom": "Mathiew Matic","etat": "payé"}, {"dateDebut": "2018-10-01T00:00:00.000+0000","nom": "Ash Moon","...

JAVA Map集合【代码】

import java.util.HashMap;import java.util.Scanner;public class Demo01Map { public static void main(String[] args) { //1,使用Scanner获得用户输入的字符串 Scanner scanner = new Scanner(System.in); System.out.println("请输入一个字符串"); String str = scanner.next(); //2,创建Map集合,kep是字符串的字符,value是字符的个数 HashMap<Character,Integer> map =new Ha...

java – 将HashMap从Map转换为Map>【代码】

是否有更优雅/内置的方式来反转Hashmap的键和值? 我目前有以下内容.private Map<Boolean, List<String>> reverseMap(Map<String, Boolean> permissions) {List<String> allow = new ArrayList<String>();List<String> deny = new ArrayList<String>();Map<Boolean, List<String>> returnvalue = new HashMap<Boolean, List<String>>();for (Entry<String, Boolean> entry : permissions.entrySet()) {if(entry.getValue()) {allow...