import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class Test {
public static void main(String[] args) {
List<Student> ls = new ArrayList<Student>();
ls.add(new Student(11, "语文"));
ls.add(new Student(11, "数学"));
ls.add(new Student(14, "数学"));
ls.add(new Student(14, "物理"));
ls.add(new Student(15, "化学"));
//add more...

Map<Integer, List<String>> groups = new HashMap<Integer, List<String>>();
for (Student s : ls) {
List<String> courses = null;
if (groups.containsKey(s.id)) {
courses = groups.get(s.id);
} else {
courses = new ArrayList<String>();
groups.put(s.id, courses);
}
courses.add(s.course);
}

System.out.println(groups);//{11=[语文, 数学], 14=[数学, 物理], 15=[化学]}
}
}
class Student {
int id;
String course;

public Student(int id, String course) {
this.id = id;
this.course = course;
}
}