java對list排序
Ⅰ java 怎麼將List裡面數據排序
學生實體類,包含姓名和年齡屬性,
比較時先按姓名升序排序,如果姓名相同則按年齡升序排序。
Ⅱ 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
Ⅲ JAVA中list排序問題
這是根據Collections.sort重載方法來實現 list比較排序
compare 方法返回int類型參數實現正序和倒序排列
那我們來分析一下這句
ret = m1.invoke(((E)a), null).toString().compareTo(m2.invoke(((E)b), null).toString());
method m1 invoke方法中 將Object a強制轉換為實體E類型 類型數組null 之後to成String 返回類型,與m2的invoke方法返回類型進行字元比較。 其結果返回的int類型 是compare 方法的返回類型。
Collections.sort將Sort方法中的參數list 進行排序,
ret = m2.invoke(((E)b), null).toString().compareTo(m1.invoke(((E)a), null).toString());
ret = m1.invoke(((E)a), null).toString().compareTo(m2.invoke(((E)b), null).toString());
這兩句返回參數理論上是相反的
不用為此糾結 這只是個實例 有不明白的 可以Hi我 ms_compound
Ⅳ Java的List怎麼排序啊
問題在於
doubletemp=0.0;
你把temp設置成double型,然後
temp=arr.get(l).doubleValue();
所以你把取得的int類型轉換成了double類型,最後輸出就帶上了.0
你仔細看看你的程序,int類型有的排序後沒有變,有的變x.0了,凡是加上.0的都是它在排序過程中與double類型的數字進行過交換。
Ⅳ java如何對Arraylist數組進行排序(用comparable)
看代碼:
importjava.util.ArrayList;
importjava.util.Arrays;
importjava.util.Collections;
publicclassDemo{
publicstaticvoidmain(String[]args)throwsException{
Pair[]pairs={
newPair(0,1),
newPair(2,9),
newPair(7,0),
newPair(8,8),
newPair(8,6),
newPair(9,2),
newPair(1,5),
newPair(8,2),
newPair(9,15),
newPair(9,5)
};
ArrayList<Pair>pairList=newArrayList<>(Arrays.asList(pairs));
System.out.println("排序前:");
System.out.println(Arrays.toString(pairs));
Arrays.sort(pairs);//對數組排序
System.out.println("排序後:");
System.out.println(Arrays.toString(pairs));
System.out.println("排序前:");
System.out.println(pairList);
Collections.sort(pairList);//對ArrayList排序
System.out.println("排序後:");
System.out.println(pairList);
}
}
//繼承Comparable介面排序該類是「可排序的」
//<>裡面的是排序時與當前實例進行比較的實例的類型
//一般都和當前實例是同一個類型,比如這里就是Pair的實例和Pair的實例比較
classPairimplementsComparable<Pair>{
publicintleft;
publicintright;
publicPair(intleft,intright){
this.left=left;
this.right=right;
}
@Override
publicStringtoString(){
return"["+left+","+right+"]";
}
//排序規則,先按left排序,再按right排序
@Override
publicintcompareTo(Pairthat){
if(this.left>that.left){
return1;
}elseif(this.left<that.left){
return-1;
}elseif(this.right>that.right){
return1;
}elseif(this.right<that.right){
return-1;
}
return0;
}
}
可以發現先按 left 排序,如果 left 相等,則按 right 排序
Ⅵ JAVA中list集合的排序
根據字元串的含義,進行對象化,比如,Student,有三個屬性,序號,姓名,分數
注意重寫Student的Compareable介面
然後,List<String>變成List<Student> students=new ArrayList<Student>
然後,遍歷list,算出平均分,放入新的SortList<Student>
列印結果
Ⅶ java中兩個list集合如何排序
將兩個list合並
List<Article> list1 = new ArrayList<Article>();
List<Article> list2 = new ArrayList<Article>();
list1.addAll(list2);
Collections.sort(list,new ReverseSort());
//自定義反向排序比較器
class ReverseSort implements Comparator{
public int compare(Object obj1,Object obj2) {
Article user1 = (Article)obj1;
Article user2 = (Article)obj2;
return -user1.gxrq.compareTo(user2.gxrq);
}
}
Ⅷ java 中 List 怎麼排序呢
Map<String, String> map =new HashMap<String, String>();
java.util.List<String> list=new ArrayList<String>();
map.put("a", "a");
map.put("c", "c");
map.put("b", "b");
list.addAll(map.keySet());
Collections.sort(list);
for (String key : list)
{
System.out.println(map.get(key));
}
直接Copy 到main方法中運行, 是個降序! 升序的話 Collections 這裡面也有的。
樓主 太摳門, 5分都不給!
Ⅸ java中list排序
最好是在將日期插入list前排序,即在sql查詢是排序,這樣比較好處理。
另一種方法是構建一個比較類或比較方法,如一樓所述。