728x90
반응형

 

ArrayList Object 오름차순 정렬

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
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
 
public class Ascending_Obj_Sort {
    public static void main(String[] args) {
 
        ArrayList<Test> data = new ArrayList<Test>();
        
        /*임의로 Test 객체 데이터 삽입*/
        data.add(new Test("name3"3));
        data.add(new Test("name1"7));
        data.add(new Test("name2"5));
        
        /*Test Class 변수 Name 기준 오름차순 정렬하기*/
        NameAscending nameAscending = new NameAscending();
        Collections.sort(data, nameAscending);
        
        for (Test temp : data) {
            System.out.print(temp + " ");
        }
        System.out.println("\n");
 
        /*Test Class 변수 Point 기준 오름차순 정렬하기*/
        PointAscending pointAscending = new PointAscending();
        Collections.sort(data, pointAscending);
 
        for (Test temp : data) {
            System.out.print(temp + " ");
        }
        System.out.println();
 
    }
}
 
/*Test객체의 name을 기준으로 오름차순 정렬하기*/
class NameAscending implements Comparator<Test> {
 
    @Override
    public int compare(Test a, Test b) {
        
        String temp1 = a.getName();
        String temp2 = b.getName();
        
        return temp1.compareTo(temp2);
        /*return a.getName().compareTo(b.getName());*/
    }
}
 
/*Test객체의 Point를 기준으로 오름차순 정렬하기*/
class PointAscending implements Comparator<Test> {
 
    @Override
    public int compare(Test a, Test b) {
        Integer temp1 = a.getPoint();
        Integer temp2 = b.getPoint();
        
        return temp1.compareTo(temp2);
    }
}
 
class Test {
    private String name;
    private int point;
 
    public Test(String name, int point) {
        this.name = name;
        this.point = point;
    }
 
    public String getName() {
        return this.name;
    }
 
    public int getPoint() {
        return point;
    }
 
    @Override
    public String toString() {
        return "[name=" + name + ", point=" + point + "]";
    }
    
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 

 

첫번째 Console Result : name 변수 기준 오름차순 정렬 결과

두번째 Console Result : Point 변수 기준 오름차순 정렬 결과

 

 

ArrayList Object 내림차순 정렬

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
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
 
public class Descending_Obj_Sort {
    public static void main(String[] args) {
 
        ArrayList<Test> data = new ArrayList<Test>();
        
        /*임의로 Test 객체 데이터 삽입*/
        data.add(new Test("name3"3));
        data.add(new Test("name1"7));
        data.add(new Test("name2"5));
        
        /*Test Class 변수 Name 기준 내림차순 정렬하기*/
        NameDecending nameDecending = new NameDecending();
        Collections.sort(data, nameDecending);
        
        for (Test temp : data) {
            System.out.print(temp + " ");
        }
        System.out.println("\n");
 
        /*Test Class 변수 Point 기준 내림차순 정렬하기*/
        PointDecending pointDecending = new PointDecending();
        Collections.sort(data, pointDecending);
 
        for (Test temp : data) {
            System.out.print(temp + " ");
        }
        System.out.println();
 
    }
}
 
/*Test객체의 name을 기준으로 내림차순 정렬하기*/
class NameDecending implements Comparator<Test> {
 
    @Override
    public int compare(Test a, Test b) {
        
        String temp1 = a.getName();
        String temp2 = b.getName();
        
        return temp2.compareTo(temp1);
        /*return b.getName().compareTo(a.getName());*/
    }
}
 
/*Test객체의 Point를 기준으로 내림차순 정렬하기*/
class PointDecending implements Comparator<Test> {
 
    @Override
    public int compare(Test a, Test b) {
        Integer temp1 = a.getPoint();
        Integer temp2 = b.getPoint();
        
        return temp2.compareTo(temp1);
    }
}
 
class Test {
    private String name;
    private int point;
 
    public Test(String name, int point) {
        this.name = name;
        this.point = point;
    }
 
    public String getName() {
        return this.name;
    }
 
    public int getPoint() {
        return point;
    }
 
    @Override
    public String toString() {
        return "[name=" + name + ", point=" + point + "]";
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

 

첫번째 Console Result : name 변수 기준 내림차순 정렬 결과

두번째 Console Result : Point 변수 기준 내림차순 정렬 결과

 

 

ForEach문에서 Temp로 변수내용이 출력되는 이유

→ Test Class의 toString 메소드에 의해 출력

public String toString() {

        return "[name=" + name + ", point=" + point + "]";

}

728x90
반응형

+ Recent posts