์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- JSON
- lazy loading
- Store
- vscode
- error
- .net
- c#์ฝ๋ฉ์๊ธฐ์ ์ค์ ํธ
- ์์
- ORM
- React
- c#
- Request
- mac
- extraParams
- minimalAPI
- ์ฝ๋ํ๋ก๊ทธ๋๋จธ์ค
- JavaScript
- scanner
- ์ค๋ ์์ฐ์
- dbContext
- ๋ช ์์ ์ธ๋ํค
- Config
- extjs
- ๋ผ๋๋ฌด์คdvd
- LINQ
- intellij
- ์์ค๊ฐ๋ ์ค๋
- ViewModel
- ๋์ ๋ณธ์์์
- EFCore
- Today
- Total
ejyoo's ๊ฐ๋ฐ ๋ ธํธ
List์ ์ ๋ ฌ(Sort) - interface : Comparable, Comparator (2) ๋ณธ๋ฌธ
List์ ์ ๋ ฌ(Sort) - interface : Comparable, Comparator (2)
ejyoovV 2021. 3. 6. 17:24๐ก ์ ๋ ฌ ๋ฐฉ์ 2๊ฐ์ง Comparable, Comparator ์์
๐ก ์ฌ์ฉ์ ์ปค์คํ ๊ฐ์ฒด Member ์์ฑ -> ๊ธฐ๋ณธ ์ ๋ ฌ ์ค์ (Comparable)
์ฌ์ฉ์ ์ปค์คํ ํด๋์ค ์์ฑ
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Member> memList = new ArrayList<Member>();
memList.add(new Member(1, "ํ๊ธธ๋", "010-1111-1111"));
memList.add(new Member(4, "๋ณํ๋", "010-2222-2222"));
memList.add(new Member(6, "์ฑ์ถํฅ", "010-3333-3333"));
memList.add(new Member(3, "์ด์์ ", "010-4444-4444"));
memList.add(new Member(2, "๊ฐ๊ฐ์ฐฌ", "010-5555-5555"));
memList.add(new Member(5, "์ผ์ง๋งค", "010-6666-6666"));
System.out.println("์ ๋ ฌ ์ : ");
for(Member mem : memList) {
System.out.println(mem);
}
}
}
class Member{
private int num;
private String name;
private String tel;
public int getNum() {
return num;
}
public Member() {
}
public Member(int num, String name, String tel) {
super();
this.num = num;
this.name = name;
this.tel = tel;
}
@Override
public String toString() {
return "Member [num=" + num + ", name=" + name + ", tel=" + tel + "]";
}
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;
}
}
๐ก ์์ ์ฝ๋ ๋ฆฌ๋ทฐ
์์ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ ๊ฐ๋ ์ด ๋ค์ด๊ฐ ์๋ค.
- toString() ์ค๋ฒ๋ผ์ด๋
์ค๋ฒ๋ผ์ด๋ '@Override' ๋ฌธ๊ตฌ ์ฌ์ฉ ์ด์ : ์ค๋ฒ๋ผ์ด๋๋ฅผ ํด์ผํ๋ ๋ฉ์๋๊ฐ ์๋๋ฐ, ์ปดํ์ผ ์ ๊ทธ๊ฒ์ ์คํ๋ฅผ ๋ง๊ธฐ ์ํด ์ฌ์ฉ
์ด ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ ํ์ง ์์ผ๋ฉด ๋ฉ์ธ ๋ฉ์๋์์ Member ์ถ๋ ฅ ์ ์ฃผ์๊ฐ์ด ๋์ค๊ฒ ๋๋ค.
@Override
public String toString() {
return "Member [num=" + num + ", name=" + name + ", tel=" + tel + "]";
}
- ์์ฑ์ ์ ์ธ
public Member() {
}
public Member(int num, String name, String tel) {
super();
this.num = num;
this.name = name;
this.tel = tel;
}
public Member(){}
- ๋ ์์ ์ ์๋ฏธํ๋ ์์ฑ์
- this(); ๊ฐ ์๋ต๋์ด ์์.
- ์ด๊ธฐ ๊ฐ์ ์ค์ ํ์ง ์์ ๊ฒฝ์ฐ, ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๊ธฐํ ๋๋ค. [num=0, name=null, tel=null]
public Member(int num, String name, String tel){}
- ๋ชจ๋ ์์ฑ์๋ Object๋ฅผ ํธ์ถํด์ผํ๋ฏ๋ก super();๋ฅผ ํธ์ถํ๋๋ฐ ์ด๋ ์๋ตํด๋ ์ข๋ค.
- super()๋ฅผ ์๋ตํ๋๋ผ๋ ์ปดํ์ผ๋ฌ๊ฐ ์์์ ํธ์ถํ๋ค.
- ์ด ๋ฉค๋ฒ ์์ฑ์๋ ํ๋ผ๋ฏธํฐ๊ฐ ์กด์ฌํ๋ฏ๋ก this๋ฅผ ์ฌ์ฉํ์ฌ ํด๋์ค ๋ฉค๋ฒ ๋ณ์์์ ๋ช ์ํ๋ค.
๐ก ๊ธฐ๋ณธ ์ ๋ ฌ ์ค์ - Comparable ์ธํฐํ์ด์ค์์ ๋ฐ compareTo ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ ๊ตฌํ
์ ๋ ฌ ์กฐ๊ฑด : ์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ด ๋๋๋ก ์ค์ ํจ.
compareTo ๋ฉ์๋ ๋ด return ๊ฐ
- this.getName().compareTo(mem.getName()) : ์ค๋ฆ์ฐจ์
- this.getName().compareTo(mem.getName()) : ๋ด๋ฆผ์ฐจ์
class Member implements Comparable<Member>{
private int num;
private String name;
private String tel;
public int getNum() {
return num;
}
public Member() {
}
public Member(int num, String name, String tel) {
super();
this.num = num;
this.name = name;
this.tel = tel;
}
@Override
public int compareTo(Member mem) {
return this.getName().compareTo(mem.getName());
}
@Override
public String toString() {
return "Member [num=" + num + ", name=" + name + ", tel=" + tel + "]";
}
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;
}
}
๐ก ๊ธฐ๋ณธ ์ ๋ ฌ ์ค์ ํ ํ์ธ
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Member> memList = new ArrayList<Member>();
memList.add(new Member(1, "ํ๊ธธ๋", "010-1111-1111"));
memList.add(new Member(4, "๋ณํ๋", "010-2222-2222"));
memList.add(new Member(6, "์ฑ์ถํฅ", "010-3333-3333"));
memList.add(new Member(3, "์ด์์ ", "010-4444-4444"));
memList.add(new Member(2, "๊ฐ๊ฐ์ฐฌ", "010-5555-5555"));
memList.add(new Member(5, "์ผ์ง๋งค", "010-6666-6666"));
System.out.println("์ ๋ ฌ ์ ");
for(Member mem : memList) {
System.out.println(mem);
}
System.out.println("โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ ");
System.out.println("์ด๋ฆ ๊ธฐ์ค ์ค๋ฆ์ฐจ์ ์ ๋ ฌ");
Collections.sort(memList);
for(Member mem : memList) {
System.out.println(mem);
}
}
}
class Member implements Comparable<Member>{
private int num;
private String name;
private String tel;
public int getNum() {
return num;
}
public Member() {
}
public Member(int num, String name, String tel) {
super();
this.num = num;
this.name = name;
this.tel = tel;
}
@Override
public int compareTo(Member mem) {
return this.getName().compareTo(mem.getName());
}
@Override
public String toString() {
return "Member [num=" + num + ", name=" + name + ", tel=" + tel + "]";
}
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;
}
}
๐ก ์ถ๊ฐ ์ ๋ ฌ ์ค์ - Comparator ์ธํฐํ์ด์ค์์ ๋ฐ compare ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ ๊ตฌํ
์ ๋ ฌ์กฐ๊ฑด : ํ๋ฒ ๊ธฐ์ค ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
๋ณ๋์ ํด๋์ค ์์ฑ.
class SortNumDesc implements Comparator<Member>{
@Override
public int compare(Member mem1, Member mem2) {
return new Integer(mem1.getNum()).compareTo(mem2.getNum()) * -1;
}
}
์ถ๋ ฅ ํ์ธ
package baekjoonProject;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Member> memList = new ArrayList<Member>();
memList.add(new Member(1, "ํ๊ธธ๋", "010-1111-1111"));
memList.add(new Member(4, "๋ณํ๋", "010-2222-2222"));
memList.add(new Member(6, "์ฑ์ถํฅ", "010-3333-3333"));
memList.add(new Member(3, "์ด์์ ", "010-4444-4444"));
memList.add(new Member(2, "๊ฐ๊ฐ์ฐฌ", "010-5555-5555"));
memList.add(new Member(5, "์ผ์ง๋งค", "010-6666-6666"));
System.out.println("์ ๋ ฌ ์ ");
for(Member mem : memList) {
System.out.println(mem);
}
System.out.println("โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ ");
System.out.println("์ด๋ฆ ๊ธฐ์ค ์ค๋ฆ์ฐจ์ ์ ๋ ฌ");
Collections.sort(memList);
for(Member mem : memList) {
System.out.println(mem);
}
System.out.println("โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ ");
System.out.println("ํ๋ฒ ๊ธฐ์ค ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ");
Collections.sort(memList, new SortNumDesc());
for(Member mem : memList) {
System.out.println(mem);
}
}
}
class SortNumDesc implements Comparator<Member>{
@Override
public int compare(Member mem1, Member mem2) {
return new Integer(mem1.getNum()).compareTo(mem2.getNum()) * -1;
}
}
class Member implements Comparable<Member>{
private int num;
private String name;
private String tel;
public Member() {
}
public Member(int num, String name, String tel) {
super();
this.num = num;
this.name = name;
this.tel = tel;
}
@Override
public int compareTo(Member mem) {
return this.getName().compareTo(mem.getName());
}
@Override
public String toString() {
return "Member [num=" + num + ", name=" + name + ", 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;
}
}
'BackEnd > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Set (0) | 2021.03.07 |
---|---|
List์ ์ ๋ ฌ(Sort) - interface : Comparable, Comparator (3) (0) | 2021.03.06 |
List์ ์ ๋ ฌ(Sort) - interface : Comparable, Comparator (1) (0) | 2021.03.06 |
ArrayList (0) | 2021.03.06 |
Stack๊ณผ Queue (0) | 2021.03.06 |