小编Ank*_*ngh的帖子

如何使用流来查找两个列表或数组乘法中的元素对

我有两个数字列表,我想找到所有可能的数字对.例如,给定列表[1,2,3]和[3,4],结果应该是[(1,3),(1,4),(2,3),(2,4),(3) ,3),(3,4)].

我知道我可以使用for循环来做到这一点,但有没有更简洁的方法来使用Java 8流?

我试过以下但是我错过了一些东西,因为我得到了List<Stream<int[]>>而不是List<int[]>.

public static void main(String[] args) {
    List<Integer> list1 = Arrays.asList(1, 2, 3);
    List<Integer> list2 = Arrays.asList(3, 4);
    List<int[]> pairs = list1.stream().map(i -> list2.stream().map(j -> new int[] { i, j }))
            .collect(Collectors.toList());
    pairs.forEach(i -> {
            System.out.println("{" + i[0]+ "," + i[1]+ "}");
    });
}
Run Code Online (Sandbox Code Playgroud)

java matrix-multiplication java-8 java-stream

20
推荐指数
3
解决办法
3641
查看次数

Java8中菱形问题解析或多重继承的规则

在 Java 中,一个类只能扩展一个父类,但可以实现多个接口。随着 Java 8 接口中默认方法的引入,通过实现具有相同默认方法的 2 个接口,一个类有可能继承多个具有相同签名的方法 这可能会产生像 C++ 中的菱形问题

在下面的代码示例中的输出

new C().hello(); is 
Run Code Online (Sandbox Code Playgroud)

这是第二

   public interface First {

    default void hello(){
        System.out.println("This is First");
    }
}

 public interface Second extends First {

    default void hello(){
        System.out.println("This is Second");
    }
}

  public class MyClass implements First,Second {

    public static void main(String[] args) {
        new MyClass().hello();
    }
}
Run Code Online (Sandbox Code Playgroud)

Java用来解决钻石问题的解析规则是什么?一个简单的答案,比如谁优先,什么时候会很好。

java oop diamond-problem java-8 default-method

3
推荐指数
1
解决办法
1017
查看次数