3 回答

TA貢獻1805條經驗 獲得超9個贊
這似乎有效 - 需要告訴列表您正在使用什么類型的對象
List<String> myList = Arrays.asList("A1", "a2", "b1", "c2", "A2",
"a3", "c2", "A3", "c2", "a1", "a4", "a6");
myList.stream().filter(s -> s.startsWith("a")).sorted().limit(3)
forEach(s ->System.out.println("Filtered value: " + s));
此外,由于您只需要小寫,a因此無需轉換為小寫。

TA貢獻1909條經驗 獲得超7個贊
您可以.limit(3)在排序后添加到您的流中。需要輸入列表才能使用 String 方法,除非您希望將結果轉換為小寫,否則List<String>不需要。toLowerCase
List<String> myList = List.of(
"A1", "a2", "b1", "c2", "A2", "a3", "c2", "A3", "c2", "a1", "a4", "a6");
myList.stream().filter(s -> s.charAt(0) == 'a').sorted().limit(3)
.forEach(s -> System.out.println("Filtered value: " + s));
更新:對于從每個字符串的索引 1 開始的數字排序:
Comparator<String> comparator = Comparator.comparing(
s -> Integer.parseInt(s.substring(1)));
myList.stream().filter(s -> s.charAt(0) == 'a').sorted(comparator).limit(3)
.forEach(s -> System.out.println("Filtered value: " + s));

TA貢獻2039條經驗 獲得超8個贊
請找到以下相同的代碼:
List<String> myList = Arrays.asList("A1", "a2", "b1", "c2", "A2", "a3", "c2", "A3", "c2", "a1", "a4", "a6"); myList.stream().filter(x-> x.startsWith("a")).sorted().limit(3).forEach(System.out :: println);
添加回答
舉報