国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - List集合對象中按照不同屬性大小排序的實例

List集合對象中按照不同屬性大小排序的實例

2020-08-24 10:59Java教程網 Java教程

下面小編就為大家帶來一篇List集合對象中按照不同屬性大小排序的實例。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

實例如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package com.huad.luck;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
 
public class Test {
    public static void main(String[] args) {
        Person p = new Person();
        p.setName("tom");
        p.setAge(11);
        Person p1 = new Person();
        p1.setName("lilei");
        p1.setAge(19);
        Person p2 = new Person();
        p2.setName("json");
        p2.setAge(15);
        List<Person> list =new ArrayList<Person>();
        list.add(p);
        list.add(p1);
        list.add(p2);
        Collections.sort(list,new Comparator<Person>() {
            //這里可以再Person中實現 Comparator<T>接口,重寫compare方法
            @Override
            public int compare(Person o1, Person o2) {
                //這里按照名字排序
                 return o1.getName().compareTo(o2.getName());
                 //這里按照age排序
                 //return (o1.getAge()+"").compareTo(o2.getAge()+"");
                 //。。。根據不同屬性值排序
            
 
        });
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i).getName());
        }
    }
}
//Person類
package com.huad.luck;
 
public class Person{
    private String name ;
    private int age;
    
    public Person(String name , int age) {
        this.name = name;
        this.age = age;
    }
    public Person( ) {
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
 
}
<p style="padding-top: 0px; padding-bottom: 0px; margin-top: 8px; margin-bottom: 8px; line-height: 22.5px; letter-spacing: 0.5px; font-size: 12.5px; word-wrap: break-word; word-break: break-all; color: rgb(51, 51, 51); font-family: 'Microsoft YaHei', Verdana, sans-serif, 宋體;"><span style="padding: 0px; margin: 0px; letter-spacing: normal; font-stretch: normal; font-size: 14px; line-height: 24px; font-family: Tahoma; color: rgb(0, 0, 0);">用collection.sort()方法對list集合排序</span><br style="padding: 0px; margin: 0px;" /></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 0px; line-height: 24px; font-size: 14px; word-wrap: break-word; word-break: break-all; font-stretch: normal; font-family: Tahoma;"><span style="padding: 0px; margin: 0px; list-style: none outside none; word-wrap: break-word; word-break: normal;"><span style="padding: 0px; margin: 0px; list-style: none outside none; line-height: 21px; word-wrap: break-word; word-break: normal;"></span></span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 1em; margin-bottom: 0.5em; line-height: 24px; font-size: 14px; word-wrap: break-word; word-break: break-all; font-stretch: normal; font-family: Tahoma;">第一種是list中的對象實現Comparable接口,如下:<span style="padding: 0px; margin: 0px; list-style: none outside none; word-wrap: break-word; word-break: normal;"> </span></p><pre class="java" style="padding: 5px; margin-top: 0px; margin-bottom: 0px; line-height: 18px; font-size: 9pt; font-family: 'Courier New', Arial; border: 1px solid rgb(221, 221, 221); color: rgb(51, 51, 51); background: rgb(246, 246, 246);">/**
* 根據order對User排序
*/
public class User implements Comparable<User>{
  private String name;
  private Integer order;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public Integer getOrder() {
    return order;
  }
  public void setOrder(Integer order) {
    this.order = order;
  }
  public int compareTo(User arg0) {
    return this.getOrder().compareTo(arg0.getOrder());
  }
}

測試一下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Test{
  public static void main(String[] args) {
    User user1 = new User();
    user1.setName("a");
    user1.setOrder(1);
    User user2 = new User();
    user2.setName("b");
    user2.setOrder(2);
    List<User> list = new ArrayList<User>();
    //此處add user2再add user1
    list.add(user2);
    list.add(user1);
    Collections.sort(list);
    for(User u : list){
      System.out.println(u.getName());
    }
  }
}

輸出結果如下

a
b

第二種方法是根據Collections.sort重載方法來實現,例如:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
* 根據order對User排序
*/
public class User { //此處無需實現Comparable接口
  private String name;
  private Integer order;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public Integer getOrder() {
    return order;
  }
  public void setOrder(Integer order) {
    this.order = order;
  }
}

主類中這樣寫即可:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Test{
  public static void main(String[] args) {
    User user1 = new User();
    user1.setName("a");
    user1.setOrder(1);
    User user2 = new User();
    user2.setName("b");
    user2.setOrder(2);
    List<User> list = new ArrayList<User>();
    list.add(user2);
    list.add(user1);
    
    Collections.sort(list,new Comparator<User>(){
      public int compare(User arg0, User arg1) {
        return arg0.getOrder().compareTo(arg1.getOrder());
      }
    });
    for(User u : list){
      System.out.println(u.getName());
    }
  }
}

輸出結果如下

a
b

前者代碼結構簡單,但是只能根據固定的屬性排序,后者靈活,可以臨時指定排序項,但是代碼不夠簡潔

多字段的場合:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Collections.sort(list,new Comparator<User>(){ 
 
public int compare(User arg0, User arg1) { 
 
// 第一次比較專業 
 
int i = arg0.getOrder().compareTo(arg1.getOrder());
 
// 如果專業相同則進行第二次比較 
 
if(i==0){ 
 
// 第二次比較 
 
int j=arg0.getXXX().compareTo(arg1.getXXX()); 
 
// 如果學制相同則返回按年齡排序 
 
if(j==0){ 
 
return arg0.getCCC().compareTo(arg1.getCCC()); 
 
 
return j; 
 
 
return i; 
 
 
});

以下是另外一個例子

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package test;
 
import java.util.ArrayList; 
 
import java.util.Collections; 
 
import java.util.Comparator;
 
public class ArrayListTest { 
 
public static void main(String[] args) { 
 
ArrayList<Exmployee> arrayList = new ArrayList<Exmployee>() ; 
 
arrayList.add(new Exmployee("zengqiang",new Integer(5000))) ; 
 
arrayList.add(new Exmployee("zengmin",new Integer(4000))) ; 
 
arrayList.add(new Exmployee("liuxiaojuan",new Integer(4200))) ; 
 
arrayList.add(new Exmployee("giuming",new Integer(2200))) ; 
 
Collections.sort(arrayList, new Comparator<Exmployee>(){ 
 
public int compare(Exmployee arg0, Exmployee arg1) { 
 
return arg1.getSalary()-arg0.getSalary() ; //按照工資升序 
 
//return arg0.getSalary()-arg1.getSalary() ; 按照工資降序 
 
//return arg0.getName().compareTo(arg1.getName()) ; 按照姓名升序 
 
 
}); 
 
for(Exmployee e:arrayList) 
 
System.out.println(e.getName()+"'s salary is "+e.getSalary()) ; 
 
}
 
}
 
class Exmployee { 
 
public Exmployee(String name, int salary) { 
 
this.name = name ; 
 
this.salary = salary ; 
 
}
 
private String name;
 
public String getName() { 
 
return name; 
 
}
 
public void setName(String name) { 
 
this.name = name; 
 
}
 
public int getSalary() { 
 
return salary; 
 
}
 
public void setSalary(int salary) { 
 
this.salary = salary; 
 
}
 
private int salary; 
 
}

以上這篇List集合對象中按照不同屬性大小排序的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产一区二区免费视频 | 欧美一区三区 | 成人综合av | 欧美资源在线 | 久久精品亚洲精品国产欧美kt∨ | 国内精品一区二区 | 国产精品日本欧美一区二区三区 | 电影一级毛片 | 粉嫩视频在线观看 | 亚洲美女久久 | 国产精品美女一区 | 亚洲视频一区在线 | 日韩在线免费 | 特黄特黄一级片 | 日本不卡视频 | 日本久久网 | 成人欧美一区二区三区白人 | 艹逼短视频 | 久久综合九九 | av在线免费播放 | 伊人久久综合精品一区二区三区 | 中文字幕一区二区三区日韩精品 | 伊人91| 精品无人区一区二区三区动漫 | 久久精品国产免费 | 日本一区二区视频在线播放 | 亚洲天堂中文字幕 | 91嫩草国产露脸精品国产 | 国产精品久久久久久久 | 亚洲免费人成在线视频观看 | 黄色网页在线观看 | 久久国产综合 | 日比视频网站 | 亚洲国产精品久久久久 | 国产一区久久久 | 精品国精品国产自在久不卡 | 日韩在线一区二区 | 亚洲国产精品久久久久 | 久久精品美女 | 欧洲精品久久久久毛片完整版 | www.91看片|