Java 将HashMap转换为ArrayList
我有一个如下类型的HashMapJava 将HashMap转换为ArrayList,java,android,Java,Android,我有一个如下类型的HashMap Map<MyTeacherModel, ArrayList<StudentModel>> stdByTeacher= new HashMap<>(); 我想在ArrayList中转换这个哈希映射,这样每个老师都有一定数量的学生。像下面这样 -老师A --标准A1 --标准A2 --标准A3 --标准A4 -B老师 --标准B1 --标准B2 --标准B3 --标准B4 我的HapMap就是这样的,我只想把hashmap转换成
Map<MyTeacherModel, ArrayList<StudentModel>> stdByTeacher= new HashMap<>();
我想在ArrayList中转换这个哈希映射,这样每个老师都有一定数量的学生。像下面这样
-老师A
--标准A1
--标准A2
--标准A3
--标准A4
-B老师
--标准B1
--标准B2
--标准B3
--标准B4
我的HapMap就是这样的,我只想把hashmap转换成一个上面给定的数组列表
注意:我不想使用Java8
我想要一个模型列表,即必须包含MyTeacherModel的MyModel
和学生模型的ArrayList。我想从网上得到这份名单
我上面提到的HashMap。因为hashmap中的值是
类似于此。更新:
你想要这个吗
List<Teacher> mList = new ArrayList<Teacher>();
for (Map.Entry< MyTeacherModel, StudentModel > entry : stdByTeacher.entrySet())
{
mList.add(new Teacher(stdByTeacher.getKey().getName(), stdByTeacher.entrySet().size());
}
根据您的要求: 学生班级: 教师班: 根据学生和教师模型:
你的问题不清楚,你想要列表吗?让我更新我的问题不,这不是我想要的,我没有设置。但是arraylist改为Set>mapconvert Set to list。我更新了相同的代码。阅读我更新的问题sudent或教师模型有什么问题吗?阅读我更新的问题question@A.s.ALI阅读更新的答案:希望它能起作用
List<Teacher> mList = new ArrayList<Teacher>();
for (Map.Entry< MyTeacherModel, StudentModel > entry : stdByTeacher.entrySet())
{
mList.add(new Teacher(stdByTeacher.getKey().getName(), stdByTeacher.entrySet().size());
}
public class Student {
private int id;
private String Name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
}
public class Teacher {
private int id;
private String Name;
private List<Student> students;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public List<Student> getStudents() {
return students;
}
public void setStudents(List<Student> students) {
this.students = students;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Teacher other = (Teacher) obj;
if (id != other.id)
return false;
return true;
}
}
public class Test {
public static void main(String[] args) {
Map<Teacher, List<Student>> map = new HashMap<>();
List<Teacher> teachers = getTeachers(map);
}
static List<Teacher> getTeachers(Map<Teacher, List<Student>> map) {
for (Map.Entry<Teacher, List<Student>> teacherEntry : map.entrySet()) {
teacherEntry.getKey().getStudents().addAll(teacherEntry.getValue());
}
return new ArrayList<>(map.keySet());
}
}