gpt4 book ai didi

java - 在java中对 map 进行排序

转载 作者:行者123 更新时间:2023-12-01 13:16:33 25 4
gpt4 key购买 nike

我有一个带有以下键值对组合的树形图

map 声明如下

Map<String, List<Bean>> outputMap = new TreeMap<String,List<Bean>>();

对应的代码为

for (String course_date : shiftSet) {
Bean courseBean = null;
boolean valueExists = false;

for (Entry<String, List<Bean>> entry: courseMap.entrySet()){
valueExists = false;
String studentDetail = entry.getKey();
String [] studentSet = StringUtils.getArray(studentDetail , ",");
String studentId = studentSet[0];
String courseId = studentSet[1];

for(Bean resultBean : entry.getValue()){

if(course_date.equalsIgnoreCase(resultBean.getCourseDate()){
valueExists = true;
}
}
if(!valueExists ) {
courseBean = new Bean();
courseBean.setStudent(studentId);
courseBean.setCourse(courseId);
List<Bean> courseList = entry.getValue();
courseList.add(courseBean);
outputMap.put(studentId+courseId, courseList);
}
}
}

最后需要将 OutputMap 插入到 courseMap

OutputMap 结果将为

{ADV001,STU02=   
[Bean[course_id=ADV1, student_id=STU1_2,Day=Wed-Night,courseDate=12-Feb-2014],
Bean[course_id=ADV1, student_id=STU1_2,Day=Tue-Day,courseDate=11-Feb-2014],
Bean[course_id=ADV1, student_id=STU1_2,Day=Tue-Night,courseDate=11-Feb-2014],
Bean[course_id=ADV1, student_id=STU1_2,Day=Wed-Day,courseDate=12-Feb-2014]]

所以这里我需要根据 courseDate 对 outputMap 进行排序?请帮助了解如何实现所需的输出?

提前致谢..

最佳答案

TreeMap 按键对元素进行排序,如果 courseDate 是值的一部分,则必须使用 TreeSet,例如

import java.util.Set;
import java.util.TreeSet;

public class Example {

public static void main(String[] args) {
Set<Dummy> example = new TreeSet<>();

example.add( new Dummy(7, "first dummy"));
example.add( new Dummy(2, "second dummy"));
example.add( new Dummy(3, "third dummy"));

System.out.println(example);
}

static class Dummy implements Comparable<Dummy>{
int courseDate;
String name;

Dummy(int courseDate, String name) {
this.courseDate = courseDate;
this.name = name;
}

@Override
public String toString() {
return String.format("[Dummy courseDate=%s, name=%s]", courseDate, name);
}

@Override
public int compareTo(Dummy o) {
// here you specify how the TreeSet will order your elements
return Integer.compare(this.courseDate, o.courseDate);
}
}
}

关于java - 在java中对 map 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22422185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com