我有两个数字列表,我想找到所有可能的数字对.例如,给定列表[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 中,一个类只能扩展一个父类,但可以实现多个接口。随着 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用来解决钻石问题的解析规则是什么?一个简单的答案,比如谁优先,什么时候会很好。