본문 바로가기

Programming/Java

자바의정석2판 List관련 예제 11-6

	public static long add2(List list) {
		long start = System.currentTimeMillis();
		for(int i= 0; i < 1000; i++)
			list.add(500, "X");
		long end = System.currentTimeMillis();
		return end-start;
	} 

4번쨰 라인에서 에러가 발생. 


지금 현재 쓰고 있는 jdk 는 1.8버전인데 

저 형식은 예전 1.5에서 쓰던 형식, 


 voidadd(int index, E element) 
          Inserts the specified element at the specified position in this list (optional operation).


1.5 api를 찾아보고 있을줄이야.. 


0번지에서 999번지까지 돌동안 500에 "X"라는 데이터를 넣으려는 의도는 아닌것 같아서 수정함.


현재 내가 쓰는 1.8 버전에 맞게



 	public static long add2(List list) {
		long start = System.currentTimeMillis();
		for(int i= 0; i < 1000; i++)
			list.add(500+"", i);
		long end = System.currentTimeMillis();
		return end-start;
	}


이상없이 실행됨.


인줄 알았으나, 굳이 i를 넣을필요가 없음 왜냐하면 500번지에 계속 추가하면 뒤에 번지 데이터들은 자동적으로 밀리게 될 터이니. 다시한번 맞게 수정한다면,

 	public static long add2(List list) {
		long start = System.currentTimeMillis();
		for(int i= 0; i < 1000; i++)
			list.add("X", 500);
		long end = System.currentTimeMillis();
		return end-start;
	}

이정도가 될듯 


과거의 버전의 API도 일하다보면 한두번은 더 찾아볼 기회아닌 기회가 오겠지...











위에는 모두 헛소리고, 임포트를 이상하게 해서 였음... util.Array가 아닌 따른녀석을 임포트한 내가 흑우요!!