1. 전체값 출력
package kr.or.ddit.basic;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class T04ListSortTest {
public static void main(String[] args) {
List<Member> memList = new ArrayList<Member>();
memList.add(new Member(1, "홍길동" , "010-1111-1111"));
memList.add(new Member(5, "변학도" , "010-2222-1111"));
memList.add(new Member(9, "성춘향" , "010-3333-1111"));
memList.add(new Member(3, "이순신" , "010-4444-1111"));
memList.add(new Member(6, "강감챤" , "010-5555-1111"));
memList.add(new Member(2, "일지매" , "010-6666-1111"));
System.out.println("정렬 전 : ");
for(Member m : memList) {
System.out.println(m);
}
System.out.println("-----------------------------");
Collections.sort(memList); //정렬하기
System.out.println("회원이름 오름차순 정렬 정렬 후 : ");
for(Member m : memList) {
System.out.println(m);
}
Collections.shuffle(memList); //회원정보 섞기
System.out.println("섞은후 : ");
for(Member m : memList) {
System.out.println(m);
}
Collections.sort(memList,new SortNumDesc());
System.out.println("회운번호 내림차순 정렬 후 : ");
for(Member m : memList) {
System.out.println(m);
}
}
}
// 회원 번호의 내림차순으로 정렬되도록 외부 정렬자 클래스 구현
class SortNumDesc implements Comparator<Member>{
//Comparable ?
//Comparator ?
@Override
public int compare(Member mem1 , Member mem2) {
//
// if(mem1.getNum() > mem2.getNum()) {
// return -1;
// }else if(mem1.getNum() == mem2.getNum()){
// return 0;
// }else {
// return 1;
// } 정석방법
// return new Integer(mem1.getNum()).compareTo(mem2.getNum());//오름차순 정렬 //첫번쨰 회원번호 이용해서 Integer 객체를 만듬
// return new Integer(mem1.getNum()).compareTo(mem2.getNum()) * -1; //내림차순 정렬
return Integer.compare(mem1.getNum(), mem2.getNum()) * -1;
}
}
// 회원이름을 기준으로 오름차순 정렬이 되도록 구현하기
class Member implements Comparable<Member>{
private int num; //번호
private String name; //이름
private String tel; //전화번호
public Member(int num, String name, String tel) {
super();
this.num = num;
this.name = name;
this.tel = tel;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
@Override
public String toString() {
return "Member [num=" + num + ", name=" + name + ", tel=" + tel + "]";
}
@Override
public int compareTo(Member mem) {
return this.getName().compareTo(mem.getName());
}
}
[2] 구문 분석
public class T04ListSortTest {
public static void main(String[] args) {
List<Member> memList = new ArrayList<Member>();
//기본값 출력
memList.add(new Member(1, "홍길동" , "010-1111-1111"));
memList.add(new Member(5, "변학도" , "010-2222-1111"));
memList.add(new Member(9, "성춘향" , "010-3333-1111"));
memList.add(new Member(3, "이순신" , "010-4444-1111"));
memList.add(new Member(6, "강감챤" , "010-5555-1111"));
memList.add(new Member(2, "일지매" , "010-6666-1111"));
System.out.println("정렬 전 : ");
for(Member m : memList) {
System.out.println(m);
}
// 회원이름을 기준으로 오름차순 정렬이 되도록 구현하기
class Member implements Comparable<Member>{
private int num; //번호
private String name; //이름
private String tel; //전화번호
public Member(int num, String name, String tel) {
super();
this.num = num;
this.name = name;
this.tel = tel;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
@Override
public String toString() {
return "Member [num=" + num + ", name=" + name + ", tel=" + tel + "]";
}
@Override
public int compareTo(Member mem) {
return this.getName().compareTo(mem.getName());
}
}
결과값
2.
'자바 객체 지향 프로그래밍' 카테고리의 다른 글
24-01-22 / Hash Set 함수 T05HashSetTest (1) | 2024.01.24 |
---|---|
[Collections.Sort] , [Shuffle] 사용법 + static 정리 Ex) TO03ListSortTest (0) | 2024.01.20 |
Stack , Queue 사용방법 + linkedlist , ArrayList 해석 Ex) T02LinkedListTest (0) | 2024.01.20 |
ArrayList [add , size , get , temp , remove ] 사용방법 Ex) T01 ArrayListTest (0) | 2024.01.19 |
24-01-19 객체 지향 프로그램 첫 교육 내용 (0) | 2024.01.19 |