4 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
您不需要對其進(jìn)行排序,只需將元素收集在一個(gè)列表中并在內(nèi)容上調(diào)用 toString。如果順序很重要,您可以在之后對收集的值列表進(jìn)行排序。
static String greaterThan(int[] vector, int compare) {
List<Integer> greater = new ArrayList<>();
for (int i : vector) {
if (i > compare) {
greater.add(i);
}
}
return greater.toString();
}

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
這是盡可能簡單的。這適用于數(shù)組。
public static int[] greaterThan(int[] numbs, int max) { return Arrays.stream(numbs).parallel().filter(a -> a > max).toArray(); }
您也可以對列表執(zhí)行相同的操作。
public static List<Integer> greaterThan(List<Integer> numbs, int max) { return numbs.parallelstream().filter(a -> a > max).collect(Collectors.toList()); }
在這兩種情況下,列表或數(shù)組都變成了并行的值流。那些被過濾以僅允許那些大于最大的通過管道。然后將它們收集到列表或數(shù)組中并返回。此特定任務(wù)適用于多線程中的并行操作,并將加快執(zhí)行速度,尤其是當(dāng)您的 PC 具有多個(gè)內(nèi)核時(shí)。
即使您是 Java 新手,lambda 和流也是該語言的重要特性,應(yīng)該學(xué)習(xí)。

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
在上述方法中對您的輸入進(jìn)行排序?qū)嶋H上會使它變慢。通過正常的數(shù)組迭代和比較,您的復(fù)雜度將為 O(n),而對于排序則為 O(nlogn)。相反,你可以試試這個(gè)。
static String greaterThan(int[] vectorCompare, int valueCompare)
{
List<Integer> list = new ArrayList<>();
for (int value : vectorCompare)
{
if (valueCompare < value)
{
list.add(value);
}
}
return list.toString();
}
通過使用 Arraylist,您無需擔(dān)心要返回的元素?cái)?shù)量。

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
可以按如下方式完成:
List<Integer> list = new ArrayList<>();
list.add(2);
list.add(1);
list.add(4);
list.add(6);
list.add(7);
int valToCompare = 4;
List<Integer> result = find(list, valToCompare);
private static List<Integer> find(List<Integer> list, int val) {
return list.stream().filter(v -> v > val).collect(Collectors.toList());
}
添加回答
舉報(bào)