黑马程序员技术交流社区
标题:
如何对ArrayList数组中的元素排序呢
[打印本页]
作者:
李靖
时间:
2012-10-29 20:05
标题:
如何对ArrayList数组中的元素排序呢
利用Collections工具类可以实现对Arraylist数组排序,代码如下,其中Person类实现了comparable接口
ArrayList<Person> list=new ArrayList<Person>();
Person person1 =new Person("zhangsan", 14);
Person person2=new Person("zhangsan", 13);
list.add(person1);
list.add(person2);
Collections.sort(list);
for (Person person : list) {
System.out.println(person.getName()+person.getAge());
}
public class Person implements Comparable{
private String name;
private int age;
Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public int compareTo(Object o) {
Person person=(Person)o;
int num=this.name.compareTo(person.name);
if(num==0){
return new Integer(this.age).compareTo(person.age);
}
return num;
}
}
作者:
崔政
时间:
2012-10-29 20:21
本帖最后由 cz2861856 于 2012-10-29 20:23 编辑
通过Collections工具类的sort方法,和比较器Comparator
package day19;
import java.util.*;
public class Test {
public static void main(String[] args){
List<String> list=new ArrayList<String>();
list.add("aaaa");
list.add("zcv");
list.add("dfssdf");
list.add("dfgfg");
list.add("asdf");
Collections.sort(list); //通过默认排序
for(String s:list){ //遍历输出
System.out.println(s);
}
Collections.sort(list, new StrLenComparator());//按比较器的规则排序
for(String s:list){ //遍历输出
System.out.println(s);
}
}
}
class StrLenComparator implements Comparator<String>{//创建一个比较器,按字符长度比较
public int compare(String s1,String s2){
if(s1.length()>s2.length())
return 1;
if(s1.length()<s2.length())
return -1;
return s1.compareTo(s2);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2