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
반응형
'자바(JAVA)' 카테고리의 다른 글
[Eclipse] Java Compiler Version 확인 및 변경하기 (0) | 2022.01.19 |
---|---|
[Eclipse] Properties 글자 색 변경 (0) | 2019.07.07 |
[Eclipse] 테마 강제 변경 (0) | 2019.07.07 |
[Java] ArrayList 오름차순, 내림차순 Example (0) | 2019.06.29 |
[Java] OOP 객체지향프로그래밍 개념 (0) | 2019.06.29 |