[英]Is there a way to split a String ArrayList based on the names that contains inside of the array?
我需要編寫一個方法來接收包含一堆人名的ArrayList,然后根據名稱的第一個字母將此ArrayList分成較小的ArrayLists。 諸如“ Aaron,Albert,Ana”之類的名稱必須放在ArrayList上,“ Bart,Bob,Billy”之類的名稱必須位於另一個列表上。 然后,我需要提供一個包含所有較小列表的列表。 我需要為此編寫一個JUnit測試。 這是在Java初學者課程中進行的練習:(這使我發瘋。
我嘗試編寫“ for循環”來檢查每個單詞的起始字符,但這必須是一種更好的方法。
這是將用作方法參數的列表:
public List<String> namesList() {
List<String> names = new ArrayList<String>();
names.add("ANA");
names.add("ANA BEATRIX");
names.add("JOE");
names.add("WALTER");
names.add("ROBERT");
names.add("RODNEY");
names.add("RUDOLPH");
names.add("VAGNER");
names.add("JOSE");
names.add("CLEITON");
names.add("MARIA");
names.add("MARK");
return names;
}
然后我嘗試編寫如下方法:
public List<List<String>> separateNames(List<String> names) {
Collections.sort(names);
for (String s : name)
{
if (s.charAt(0) == 'A') {
// then create an ArrayList to store names starting with A
}
}
}
結果應該是列表中的一個列表,例如[[“ Aaron”,“ Albert”,“ Ana”],[“ Bart”,“ Bob”,“ Billy” ...等]]
嘗試這個。
List<List<String>> list = names.stream().collect(
Collectors.groupingBy(str -> str.substring(0, 1),
Collectors.toList())).values().stream().collect(
Collectors.toList());
System.out.println(list);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.