您的位置:首页 > 其它

使用Collections.sort()方法扩展list集合中的数据并对其进行排序

2013-03-25 20:31 1036 查看
在前后数据交互中,以下方法还是比较实用的。自己整理的代码如下

(如果你有更好的方法希望能贴出来一起分享下噢):

package com.map;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

/*
* 按列表中的对象的长度进行比较排序
* Collections扩展方法
*/
class Person {
private Integer id;
private String name;
public Person() {
}
public Person(Integer id, String name) {
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class TestMap {
public static void main(String[] args) {
List<Person> list = new ArrayList<Person>();
List<Person> li = new ArrayList<Person>();
for (int i = 1; i < 5; i++) {   //初始化四个对象
Person p = new Person();
p.setId(i);
if (i == 2) {
p.setId(11);
}
if (i == 3) {
p.setId(12);
}
if (i == 4) {
p.setId(19);
}
p.setName("mao");
list.add(p);
}
Map<Integer, Object> map = new HashMap<Integer, Object>();
for (int i = 0; i < list.size(); i++) {
Integer key = list.get(i).getId();
map.put(key, list.get(i));
}
for (int i = 1; i <= 24; i++) {
Integer isKey = i;
boolean flag = map.containsKey(isKey);
if (!flag) {
Person pp = new Person();
pp.setId(isKey);
map.put(isKey, pp);
}
}
Set<Integer> set = map.keySet();
Iterator<Integer> it = set.iterator();
while (it.hasNext()) {
Integer key = it.next();
Person ppp = (Person) map.get(key);
li.add(ppp);
}
Collections.sort(li, new Comparator() {
public int compare(Object obj1, Object obj2) {
Person p1 = (Person) obj1;
Person p2 = (Person) obj2;
//升序排列
return p1.getId().compareTo(p2.getId());
//降序排列
//return -p1.getId().compareTo(p2.getId());
}
});
for (int i = 0; i < li.size(); i++) {  //经过处理最终扩展成24个对象
System.out.println("列表中的数据:" + li.get(i).getId() + " = " + li.get(i).getName());
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: