我有這需要我創建一個函式來計算陣列中每個數字的出現次數[2,5,6,6,8,4,2,5,2]并像這樣列印它 2 -> 3 次 6 -> 2 次等等 我以前做過,但它是為了計算一個的出現編號不是所有的,所以任何人都可以幫助......提前謝謝
更新這是我用來計算一個數字出現次數的代碼
int countTwo(List<int> arr, int value) {
int counter = 0;
for (int i = 0; i < arr.length; i ) {
if (arr[i] == value) {
counter ;
}
}
return counter;
}
void main() {
List<int> arr = [5, 6, 15, 2, 8, 2, 38, 2];
int x = countTwo(arr, 2);
print(x);
}
uj5u.com熱心網友回復:
您可以從串列中創建一個集合以獲取唯一的 int。
final data = [2, 5, 6, 6, 8, 4, 2, 5, 2];
final dataSet = data.toSet();
int counter(int number) {
final int counter = data.where((element) => element == number).length; //you can use for loop here too
return counter;
}
for (int i = 0; i < dataSet.length; i ) {
print(
"number ${dataSet.elementAt(i)} -> ${counter(dataSet.elementAt(i))} times");
}
用你的方法做
final data = [2, 5, 6, 6, 8, 4, 2, 5, 2];
final dataSet = data.toSet();
for (int i = 0; i < dataSet.length; i ) {
final checkNUmber = dataSet.elementAt(i);
print("number $checkNUmber-> ${countTwo(data, checkNUmber)} times");
}
結果
number 2 -> 3 times
number 5 -> 2 times
number 6 -> 2 times
number 8 -> 1 times
number 4 -> 1 times
uj5u.com熱心網友回復:
我會使用地圖來收集計數:
var count = <int, int>{};
for (var n in data) {
count[n] = (count[n] ?? 0) 1;
}
之后,您將擁有所有單獨的元素,以及它發生的次數:
for (var n in count.keys) {
print("$n: ${count[n]} times");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/512632.html
標籤:功能镖
