Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
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
Tags
more
Archives
Today
Total
관리 메뉴

JS Coding

[Java] List와 Set의 차이점 본문

Java

[Java] List와 Set의 차이점

JSKJS 2023. 11. 11. 09:41

 

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