这是我的第一篇文章,我才刚刚开始学习 Java,所以请耐心等待。
我有一个 HashMap,它存储一个键和一个类的实例作为相应的值(来 self 称为 Main
的类)。该对象有两个变量。我想做的是根据特定的对象变量打印输出,在本例中是按年份打印。这是我的代码:
public class Main {
private String name;
private int year;
public Main(String name, int year) {
this.name = name;
this.year = year;
}
protected static Map<Integer, Main> input = new LinkedHashMap<Integer, Main>();
input.put(1, new Main("Chris", 1980);
input.put(2, new Main("Daphne", 1981);
input.put(3, new Main("Sandra", 1976);
input.put(4, new Main("Adele", 1980);
所以现在我想做的就是按年份列出每个人。所以我的预期输出将如下所示:
1976: Sandra
1980: Chris, Adele
1981: Daphne
非常感谢
最佳答案
一种方法是使用流,例如:
Map<Integer,List<Main>> mainByYear = input.values().stream().collect(Collectors.groupingBy
(e -> e.year));
然后您可以迭代 mainByYear 映射以打印出键以及关联的列表成员。
关于java - 按值对 HashMap 进行排序,该值是具有多个变量的类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43334377/