您的位置:首页 > 编程语言 > Java开发

Java Map集合 转化为List 并为List排序

2016-03-30 22:48 483 查看
public class MapToList
{

public static void main(String[] args)
{
List<Student> studentList = new ArrayList<Student>();
//添加20个学生姓名和学号

for (int i=0;i<20;i++)
{
Student student = new Student();
student.setStudentName("张三"+(i+1));
student.setStudentNO((i+1));
studentList.add(student);
}

//获取Map K-V 类型 对象
Map<String,String> resultMap = List_ToMap(studentList);

//获取List 对象
List<Student> resultList =  Map_ToList( resultMap);
for (Student s : resultList)
{
System.out.println(s.getStudentNO() +"\t"+s.getStudentName());
}
}
<strong>//List转换为Map
public static Map<String,String> List_ToMap(List<Student> resultList)
{
Map<String,String> resultMap = new HashMap<>();
//获取参数值
List<Student> list = resultList;
if (list.size() == 0 )
{
return resultMap;
}
//遍历集合
for (Student stu : list )
{
resultMap.put(String.valueOf(stu.getStudentNO()), stu.getStudentName());
}

return resultMap;

}</strong>

//Map类型转换为List
public static List<Student>  Map_ToList(Map<String,String> resultMap)
{

List<Student> resultList = new ArrayList<>();
Map<String,String> map = resultMap;
//如果为空直接返回 空对象
if (map.size() == 0)
{
return resultList;
}

<span style="color:#ff6666;">Set<Entry<String,String>>  setEntry = map.entrySet();
Iterator<Entry<String, String>> it = setEntry.iterator();
while(it.hasNext())
{
Entry<String, String> entry = it.next();
Student student = new Student();
student.setStudentNO(Integer.parseInt(entry.getKey()));
student.setStudentName(entry.getValue());
resultList.add(student);
}</span>
//返回结果集 (并排序 )
<span style="color:#ff9900;">Comparator<Student> c = new Comparator<Student>() {

@Override
public int compare(Student o1, Student o2) {

if (o1.getStudentNO() > o2.getStudentNO())
{
return 1;
}
else
{
return -1;
}

}
};
resultList.sort(c);</span>
return resultList;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: