Есть так много способов сделать это. Некоторые из них приведены ниже:
- Добавьте все годы к
List
и используйте Collections.frequency
следующим образом:
import java.util.Collections;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
public class Main {
public static void main(String[] args) {
List<Integer> years = List.of(2010, 2011, 2013, 2010, 2012, 2010, 2011, 2010, 2014);
Set<Integer> yearSet = new LinkedHashSet<Integer>(years);
for (Integer year : yearSet) {
System.out.println("Found year " + year + " " + Collections.frequency(years, year) + " times");
}
}
}
Выход:
Found year 2010 4 times
Found year 2011 2 times
Found year 2013 1 times
Found year 2012 1 times
Found year 2014 1 times
Добавьте все годы к
List
, а затем создайте
Map
частоты следующим образом:
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
public class Main {
public static void main(String[] args) {
List<Integer> years = List.of(2010, 2011, 2013, 2010, 2012, 2010, 2011, 2010, 2014);
Map<Integer, Integer> frequencyMap = new LinkedHashMap<Integer, Integer>();
for (Integer year : years) {
if (frequencyMap.get(year) == null) {
frequencyMap.put(year, 1);
} else {
frequencyMap.put(year, frequencyMap.get(year) + 1);
}
}
for (Entry<Integer, Integer> entry : frequencyMap.entrySet()) {
System.out.println("Found year " + entry.getKey() + " " + entry.getValue() + " times");
}
}
}
Вывод:
Found year 2010 4 times
Found year 2011 2 times
Found year 2013 1 times
Found year 2012 1 times
Found year 2014 1 times
Добавьте все годы к
List
, а затем создайте
Map
частоты, используя
Map::merge
следующим образом:
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
public class Main {
public static void main(String[] args) {
List<Integer> years = List.of(2010, 2011, 2013, 2010, 2012, 2010, 2011, 2010, 2014);
Map<Integer, Integer> frequencyMap = new LinkedHashMap<Integer, Integer>();
years.forEach(year -> frequencyMap.merge(year, 1, (oldValue, newValue) -> oldValue + newValue));
for (Entry<Integer, Integer> entry : frequencyMap.entrySet()) {
System.out.println("Found year " + entry.getKey() + " " + entry.getValue() + " times");
}
}
}
Выход:
Found year 2010 4 times
Found year 2011 2 times
Found year 2013 1 times
Found year 2012 1 times
Found year 2014 1 times