我试图将一个int数组转换为List,并且采取了使用Java 8 Stream的陌生路线,并提出了这个建议。
Arrays.stream(arr).boxed().collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
我仍然很难完全理解这条线,
我试图卸载Android NDK,因为我不再需要它了.Eclipse中的路径似乎已被打破.我该如何清理这个烂摊子?我试过brew,但它说没有安装NDK.(它甚至告诉我SDK没有安装!也许没有通过brew安装?)我正在使用Mac.
假设我有一个返回字符串数组的java方法.在方法内部,我有多个return语句,具体取决于条件.
public String[] userLogIn() {
String[] success = {"You", "are", "the", "king"};
String[] errorMsg = {"You", "are", "nothing"};
double ran = Math.random();
if(ran < 0.33)
return success;
else if (ran < 0.66)
return errorMsg;
else
return null;
}
Run Code Online (Sandbox Code Playgroud)
这个例子可能太天真了.但我的观点是,我应该/可以使用多个@return标签
@return this array if condition 1 is met
@return that array if condition 2 is met
@return null if condition 3 is met
吗?
我经常写一个单独的@return the login message但是当有一个null返回时认为这没有意义.一般来说哪种方式更好的编码实践?
我知道原始ints(int[] arr = new int[5])的Java数组不被视为通用对象,因此它不能作为参数提供给任何一个Arrays.sort(T[] a, Comparator<? super T> c)或ArrayList.toArray(T[] a).
但是我刚发现2d原始整数数组可以作为上述方法的参数!代码如下.
int[][] points = new int[3][3];
Arrays.sort(points, (a, b) -> a[1] - b[1]);
List<int[]> list2 = new ArrayList<>();
list2.add(new int[]{1,3,5});
list2.add(new int[]{2});
int[][] array2 = list2.toArray(new int[5][5]);
for(int[] i : array2)
System.out.println(Arrays.toString(i));
Run Code Online (Sandbox Code Playgroud)
怎么可能?是因为2d int数组被视为原始int数组的数组,其中内部数组本身不是原始数组?这种行为背后的设计是什么?
java ×3
android-ndk ×1
arrays ×1
collectors ×1
diff ×1
generics ×1
git ×1
git-diff ×1
java-8 ×1
java-stream ×1
javadoc ×1
list ×1
return ×1
types ×1