3 回答

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
這似乎有效 - 需要告訴列表您正在使用什么類型的對(duì)象
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因此無(wú)需轉(zhuǎn)換為小寫。

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以.limit(3)在排序后添加到您的流中。需要輸入列表才能使用 String 方法,除非您希望將結(jié)果轉(zhuǎn)換為小寫,否則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));
更新:對(duì)于從每個(gè)字符串的索引 1 開(kāi)始的數(shù)字排序:
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貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊
請(qǐng)找到以下相同的代碼:
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);
添加回答
舉報(bào)