[英]Looping through arraylist of arraylists
我下面有這段代碼來計算ArrayList中字符串的頻率
public static int count (ArrayList<String> c, String str){
int num = 0;
num = Collections.frequency(c, str);
return num;
}
我現在要做的就是對此進行改進,以便該函數接受ArrayList<ArrayList<String>>
並可以遍歷Arraylist的集合並計算String的出現次數。 任何想法都很棒。
您需要使用兩個嵌套的for循環,用第一個循環遍歷每個列表,用第二個循環遍歷當前列表的每個元素,即:
int count = 0;
for (ArrayList<String> list : lists) {
for (String string : list) {
if (list.equals("something")) count++;
}
}
要計算頻率,您還需要計算所有列表中元素的總數,但我現在將其留給您,因為它現在應該很簡單。
杜德(Dude),您描述了該算法,它不會比這更簡單。 只是編寫東西。
請記住, Collections::frequency
的名稱錯誤(IMHO),應將其count
。
在Java 8中使用流
public void findOccurenceInLists(ArrayList<ArrayList<String>> lists, String myStr) throws Exception {
int occurence = 0;
lists.stream().forEach((list) -> {
occurence += list.stream().filter((str) -> str.equals(myStr)).count();
});
System.out.println(occurence + " occurence found");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.