V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
lxk11153
V2EX  ›  Java

Java stream 方法匹配的简写?请看举例

  •  
  •   lxk11153 · Sep 26, 2020 · 2897 views
    This topic created in 2041 days ago, the information mentioned may be changed or developed.
    .collect(Collectors.toCollection(LinkedHashSet::new))
    
    // java.util.LinkedHashSet#LinkedHashSet()
    // java.util.LinkedHashSet#LinkedHashSet(int)
    

    如果想让它走#LinkedHashSet(int),有什么简写方式吗?

    Supplement 1  ·  Sep 26, 2020
    // 其实就是问这一坨的简写,不要纠结为何要这么写,我就是举个例子来研究研究
    .collect(Collectors.toCollection(new Supplier<LinkedHashSet<Object>>() {
        @Override
        public LinkedHashSet<Object> get() {
            return new LinkedHashSet<>(3);
        }
    }));
    
    kawowa
        1
    kawowa  
       Sep 26, 2020
    查了下,collectors 没有 toLinkedList 之类的,内容里面的::new 就是简写了吧
    lxk11153
        2
    lxk11153  
    OP
       Sep 26, 2020
    @kawowa #1 你理解不对,我是说`(LinkedHashSet::new))`调用的是`#LinkedHashSet()`方法,
    我想问 ?如何简写? 让它调用的是`#LinkedHashSet(int)`方法 [doge]
    wowo243
        3
    wowo243  
       Sep 26, 2020 via Android
    先 maptoint ?
    lxk11153
        4
    lxk11153  
    OP
       Sep 26, 2020
    @wowo243 #3 See 第 1 条附言
    hodur
        5
    hodur  
       Sep 26, 2020
    ::new 应该不支持带参数的
    MingYueQingFeng
        6
    MingYueQingFeng  
       Sep 26, 2020   ❤️ 1
    LinkedHashSet::new 只是简化 HashSet hs = LinkedHashSet();用途,指定构造函数只能 .collect(Collectors.toCollection(() -> new LinkedHashSet(1)))
    lxk11153
        7
    lxk11153  
    OP
       Sep 26, 2020
    @GuoGuang #6 好像,一时短路没想到`->` [doge]
    aguesuka
        8
    aguesuka  
       Sep 26, 2020 via Android
    你这段代码写出来会有警告,alt 回车会变成 6 楼的形状
    lxk11153
        9
    lxk11153  
    OP
       Sep 26, 2020
    @aguesuka #8 嗯,我没用现代化开发工具 IntelliJ IDEA 编辑代码 [doge]
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5904 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 02:50 · PVG 10:50 · LAX 19:50 · JFK 22:50
    ♥ Do have faith in what you're doing.