BackEnd/Java

[Java]컬렉션(Collection) 참조 변수를 부모 타입으로 작성하는 이유

Hojung7 2024. 8. 12. 14:38
왜 컬렉션 참조 변수를 부모 타입으로 작성하는가?

 

=> 프로그래밍 과정에서 미쳐 생각지 못한 비효율적인 요소를 쉽게 개선하기 위해

 

ex)

ArrayList 만들었는데 중간에 추가, 삭제가 빈번히 일어나는 경우

 -> LinkedList가 훨씬 효율적

 

 LinkedList 만들었는데 검색이 빈번하게 일어나는 경우

 -> ArrayList가 훨씬 효율적

 

[service]

	
	public void test3() {
//		List<Integer> list = new ArrayList<Ineger>();
		List<Integer> list = new LinkedList<Integer>();
		
		Random random = new Random();
		
//		System.currentTimeMillis()
//		-> 1970년 1월 1일 09:00:00:00 기준으로 
// 	현재 시간 까지 지난 시간을 ms로 반환(long)
//		System.out.println(System.currentTimeMillis());
		long start  = System.currentTimeMillis();

		for(int i =0; i< 1000000;i++) {  // 100만 바퀴
			list.add(random.nextInt(100000)); // 0~99999 사이 난수

		}
		long end = System.currentTimeMillis();

		System.out.println("생성완료 - 걸린 시간 : " +(end-start)+ "ms");
		
		// 추가 시간 확인
		
		start = System.nanoTime();
		
		list.add(500000, 123456789); // 중간에 데이터 삽입
		
		end = System.nanoTime();
		System.out.println("추가시간 : " + (end - start) + "nm");
		
		// 검색 시간 확인
		
		start = System.currentTimeMillis();
		System.out.println(list.indexOf(123456789));
		
		end = System.currentTimeMillis();
		
		System.out.println("검색 시간 : " + (end - start) + "ms");
	}

 

#결과

'BackEnd > Java' 카테고리의 다른 글

[Java]컬렉션(collection) Map  (0) 2024.08.12
[Java]컬렉션(collection) Set  (1) 2024.08.12
[Java]컬렉션(collection) Wrapper  (0) 2024.08.12
[Java]컬렉션  (0) 2024.08.12
[Java]다형성 인터페이스  (0) 2024.08.12