JS Coding
[Java] List와 Set의 차이점 본문
package kr.or.ddit.bts;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
public class test {
public static void main(String[] args) {
{
// 리스트는 인덱스(** 키를 자동으로 담는다 **) 와 밸류로 이루어져 있다.
// 순차적으로 인덱스가 생성되어 순번이 있기 때문에 처리과정이 시간 지연이 걸린다.
List<Double> list = new ArrayList<>();
// set은 키(** 키값을 수동적으로 지정해서 담는다**) 와 밸류로 이루어져 있다.
// 순번 상관 없이 담기 때문에 처리과정에 시간지연이 없고 빠르다.
// 트리 구조에는 높은값과 낮은 값으로 나뉜다.
Set<Double> set = new TreeSet<>();
for(int i=0; i <10; i++) {
set.add(Math.random());
}
for (Double d: set) {
System.out.println(d);
}
}
{
Set<MemberVo> set = new TreeSet<>();
MemberVo v1 = new MemberVo();
v1.memNo = "a001";
v1.memName = "김은대";
MemberVo v2 = new MemberVo();
v2.memNo = "b001";
v2.memName = "홍길동";
// 여기서 오류발생! : why? MemberVo는 객체의 대소 비교를 할수 없기 때문에
// ( 큰것과 작은것에 대한 비교 불가)
//큰값과 작은값을 구분 할 수 있는 비교를 정의해야 한다.
// compareTo()를 고려
// Comparable 인터페이스를 고려해야 함.
set.add(v1);
set.add(v2);
for (MemberVo v: set) {
System.out.println(v.memNo+" : "+v.memName);
}
}
}
public static class MemberVo implements Comparable {
private String memNo;
private String memName;
@Override
public int compareTo(Object o ) {
MemberVo v = (MemberVo) o;
String target = (this.memNo == null ? "" : this.memNo);
String compare = (v.memNo == null ? "" : v.memNo);
return this.memNo.compareTo(v.memNo);
}
}
}
'Java' 카테고리의 다른 글
[Java] 기초 Java 경마 게임 만들기 (0) | 2024.01.04 |
---|---|
[Java] 파일 다운로드 (File Download) (0) | 2024.01.02 |
[JAVA] A.O.P (0) | 2023.10.23 |
[Java] DataBase JDBC 연동 code 알아보기 (0) | 2023.10.04 |
[Java] Model 2 구조 사칙연산 구현 (0) | 2023.09.19 |