【问题标题】:How to put String and Integer elements in LinkedHashMap with IntStream?如何使用 IntStream 将 String 和 Integer 元素放入 LinkedHashMap?
【发布时间】:2018-07-24 13:19:23
【问题描述】:

我是 LinkedHashMap 的新手,我想将元素 <String, Integer> 放在我的 Map 中,使用 IntStream 而不是 filter.put("1", 1)... 有什么办法吗?

private Map<String, Integer> filter = new LinkedHashMap<>();

@PostConstruct
    public void init() throws IdNotFoundException {
        filter.put("1", 1);
        filter.put("2", 2);
        filter.put("3", 3);
        filter.put("4", 4);
        filter.put("5", 5);
        filter.put("6", 6);
        filter.put("7", 7);
        filter.put("8", 8);
        filter.put("9", 9);
        filter.put("10", 10);
        filter.put("All", -1);
    }

【问题讨论】:

  • 这到底是什么意思
  • 我必须放 "1", 1 "2", 2 ... 我可以用 lambda 代替 11 行 filter.put 来做吗
  • 如果它总是 "1",1 为什么不使用一个简单的循环呢? for(int i=0;i
  • 使用 index 创建循环 while 或 for
  • 初始数据应该从哪里来。你写它"1", 1, "2", 2 的方式听起来像一个任意数组。但我真的不确定你想如何存储初始数据?还是由你决定?

标签: java lambda hashmap linkedhashmap


【解决方案1】:

为此,我建议使用IntStream

 Map<String, Integer> filter = new LinkedHashMap<>();
    IntStream.range(1, 11).forEach(integer -> filter.put(String.valueOf(integer), integer));
    filter.put("All", -1);

【讨论】:

    猜你喜欢
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 2014-08-29
    • 2017-03-21
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多