导航:首页 > 编程语言 > javalist对象排序

javalist对象排序

发布时间:2022-09-03 09:38:27

A. java如何根据List中对象的属性进行对象排序(江湖救急!)

最近这么多人问排序的问题啊,都快回答腻了,你可以先搜一搜看看别的网站有没有,不过既然都回答了,我就估且再发些代码吧,这里只用String的List排序,如果用到复杂的对象你自己懂得变通吧

publicclassSortList{
privatestaticDateFormatdf=newSimpleDateFormat("yyyy-MM-dd");

publicstaticvoidmain(String[]args){
List<String>dates=newArrayList<String>();
dates.add("2014-10-02");
dates.add("2013-12-01");
dates.add("2014-11-02");
dates.add("2014-01-05");

Collections.sort(dates,newComparator<String>(){
@Override
publicintcompare(Stringo1,Stringo2){
Dated1=null,d2=null;
try{
d1=df.parse(o1);
}catch(ParseExceptione){
e.printStackTrace();
}
try{
d2=df.parse(o2);
}catch(ParseExceptione){
e.printStackTrace();
}
if(null==d1||null==d2){
return0;
}
returnd1.compareTo(d2);
}
});
System.out.println(dates);
}

}

B. java List对象排序的问题……

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class TestTwo {
public static void main(String[] args) {
Navigation n = new Navigation();
List list = n.getNavigations();
Collections.sort(list,new TodoListComparator());
for (int i = 0; i < list.size(); i++) {
Navigation na = (Navigation)list.get(i);
System.out.println(na.getId());
}
}
}

class Navigation {
int id;
String name;
List navigations = new ArrayList();

public Navigation(int id,String name){
this.id = id;
this.name = name;
}

public Navigation(){
Navigation a1 = new Navigation(33,"张三");
Navigation a2 = new Navigation(11,"李四");
Navigation a3 = new Navigation(99,"王五");
Navigation a4 = new Navigation(24,"王五");
navigations.add(a1);
navigations.add(a2);
navigations.add(a3);
navigations.add(a4);
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public List getNavigations() {
return navigations;
}

public void setNavigations(List navigations) {
this.navigations = navigations;
}

}

class TodoListComparator implements Comparator {
public int compare(Object obj1, Object obj2) {
Navigation m1 = (Navigation) obj1;
Navigation m2 = (Navigation) obj2;
int t1 = m1.getId();
int t2 = m2.getId();
if (t1 < t2){
return 1;
}else if (t1 > 2){
return -1;
}else {
return 0;
}
}
}

C. java list排序问题

1、Collections.sort(list);
这句是是对list集合中的内容进行 升序 排列。
Collections是java中提供的一个工具类,专为操作集合(List,Set,Map等)提供一些方法,其中所
有方法都是静态的,方便调用。

2、for(String s:list) { System.out.print(s+" "); }
这是一个增强for循环,是java5.0的新特性。
意思是对list集合进行遍历,每循环一次就从list中取出一个 元素 放入s中,知道遍历出整个集合。
{}中的System.out.print(s+" ");就是每次循环出一个元素,就把它输出到控制台。

D. 关于java list的排序问题

楼上你可以用用linkedhashmap来存放对象 这样就可以按照你放的顺序输出了。

TreeMap的顺序是自然顺序(如整数从小到大),也可以指定比较函数。但不是插入的顺序。

LinkedHashMap吧。它内部有一个链表,保持插入的顺序。迭代的时候,也是按照插入顺序迭代,而且迭代比HashMap快。

E. JAVA中list集合的排序

根据字符串的含义,进行对象化,比如,Student,有三个属性,序号,姓名,分数
注意重写Student的Compareable接口
然后,List<String>变成List<Student> students=new ArrayList<Student>
然后,遍历list,算出平均分,放入新的SortList<Student>
打印结果

F. Java里面List排序

摘自:http://www.blogjava.net/zygcs/archive/2008/01/17/176032.html

//一个POJO例子

class User {
String name;
String age;

public User(String name,String age){
this.name=name;
this.age=age;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

//具体的比较类,实现Comparator接口

import java.util.Comparator;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;

public class ComparatorUser implements Comparator{
public int compare(Object arg0, Object arg1) {
User user0=(User)arg0;
User user1=(User)arg1;

//首先比较年龄,如果年龄相同,则比较名字

int flag=user0.getAge().compareTo(user1.getAge());
if(flag==0){
return user0.getName().compareTo(user1.getName());
}else{
return flag;
}
}

}

//测试类
public class SortTest {

public static void main(String[] args){
List userlist=new ArrayList();
userlist.add(new User("dd","4"));
userlist.add(new User("aa","1"));
userlist.add(new User("ee","5"));
userlist.add(new User("bb","2"));
userlist.add(new User("ff","5"));
userlist.add(new User("cc","3"));
userlist.add(new User("gg","6"));

ComparatorUser comparator=new ComparatorUser();
Collections.sort(userlist, comparator);

for (int i=0;i<userlist.size();i++){
User user_temp=(User)userlist.get(i);
System.out.println(user_temp.getAge()+","+user_temp.getName());
}

}
}

//首先年龄排序,如果年龄相同,则按名字排序

结果:
1, aa
2, bb
3, cc
4, dd
5, ee //注意:同样是5岁的人,则比较名字(ee,ff),然后排序
5, ff
6, gg

G. java的list集合如何根据对象中的某个字段排序

下面的代码是根据学生年龄排序学生list 的一个例子:

importjava.util.ArrayList;
importjava.util.List;

classStudent{

privateStringname;

privateintage;

publicStudent(Stringname,intage){
this.name=name;
this.age=age;
}

publicStringgetName(){
returnname;
}

publicvoidsetName(Stringname){
this.name=name;
}

publicintgetAge(){
returnage;
}

publicvoidsetAge(intage){
this.age=age;
}

@Override
publicStringtoString(){
return"Perosn[name="+name+",age="+age+"]";
}
}

publicclassApp{

publicstaticvoidmain(String[]args){

List<Student>students=newArrayList<>();

students.add(newStudent("abc",12));
students.add(newStudent("bcd",20));
students.add(newStudent("cde",17));
students.add(newStudent("def",25));
students.add(newStudent("efg",15));

students.sort((x,y)->Integer.compare(x.getAge(),y.getAge()));

for(Studentstu:students){
System.out.println(stu);
}
}
}

运行结果:

H. java中list排序

第一种方法,就是list中对象实现Comparable接口,代码如下:

public class Person implements Comparable<Person> {
private String name;
private Integer order;

/**
* @return the name
*/
public String getName() {
return name;
}

/**
* @param name
* the name to set
*/
public void setName(String name) {
this.name = name;
}

/**
* @return the order
*/
public Integer getOrder() {
return order;
}

/**
* @param order
* the order to set
*/
public void setOrder(Integer order) {
this.order = order;
}

@Override
public int compareTo(Person arg0) {
return this.getOrder().compareTo(arg0.getOrder());
}

}

public static void main(String[] args) {
List<Person> listA = new ArrayList<Person>();
Person p1 = new Person();
Person p2 = new Person();
Person p3 = new Person();

p1.setName("name1");
p1.setOrder(1);
p2.setName("name2");
p2.setOrder(2);
p3.setName("name3");
p3.setOrder(3);

listA.add(p2);
listA.add(p1);
listA.add(p3);
Collections.sort(listA);
for (Person p : listA) {
System.out.println(p.getName());
}
}

第二种方法,就是在重载Collections.sort方法,代码如下:

public class Person {
private String name;
private Integer order;

/**
* @return the name
*/
public String getName() {
return name;
}

/**
* @param name
* the name to set
*/
public void setName(String name) {
this.name = name;
}

/**
* @return the order
*/
public Integer getOrder() {
return order;
}

/**
* @param order
* the order to set
*/
public void setOrder(Integer order) {
this.order = order;
}

}

public static void main(String[] args) {
List<Person> listA = new ArrayList<Person>();
Person p1 = new Person();
Person p2 = new Person();
Person p3 = new Person();

p1.setName("name1");
p1.setOrder(1);
p2.setName("name2");
p2.setOrder(2);
p3.setName("name3");
p3.setOrder(3);

listA.add(p2);
listA.add(p1);
listA.add(p3);

Collections.sort(listA, new Comparator<Person>() {
public int compare(Person arg0, Person arg1) {
return arg0.getOrder().compareTo(arg1.getOrder());
}
});

for (Person p : listA) {
System.out.println(p.getName());
}
}

两次执行的结果都是:

name1

name2

name3

I. JAVA中list排序问题

compareTo
只是比较2个字符串,不能进行排序
String
s1
=
"abc";
String
s2
=
"abcd";
String
s3
=
"abcdfg";
String
s4
=
"1bcdfg";
String
s5
=
"cdfg";
String
s6="abc";
System.out.println(
s1.compareTo(s2)
);
//
-1
(前面相等,s1长度小1)
System.out.println(
s1.compareTo(s3)
);
//
-3
(前面相等,s1长度小3)
System.out.println(
s1.compareTo(s4)
);
//
48
("a"的ASCII码是97,"1"的的ASCII码是49,所以返回48)
System.out.println(
s1.compareTo(s5)
);
//-2
System.out.println(
s1.compareTo(s6)
);
//
0
比较方法其实就是对字符串中的字符逐个比较ASCII
值相减,如果2个字符串是包含关系返回长度差。Collections.sort方法才是对LIST
进行排序的方法。

阅读全文

与javalist对象排序相关的资料

热点内容
永宏plc用什么编程电缆 浏览:369
win激活命令行 浏览:886
新手学电脑编程语言 浏览:893
云空间在哪个文件夹 浏览:926
编程游戏小猫抓小鱼 浏览:790
安卓dosbox怎么打开 浏览:774
服务器无影响是怎么回事 浏览:954
比德电子采购平台加密 浏览:202
加密货币400亿 浏览:524
植发2次加密 浏览:44
vc6查看编译的错误 浏览:595
心理大全pdf 浏览:1002
区域链加密币怎么样 浏览:343
查找命令符 浏览:95
压缩工具zar 浏览:735
白盘怎么解压 浏览:475
辰语程序员学习笔记 浏览:47
程序员被公司劝退 浏览:523
java三子棋 浏览:693
加密空间怎么强制进入 浏览:345