본문 바로가기
TechNical/JAVA

ArrayList와 LinkedList의 차이점.

by 강멍멍이 2011. 4. 18.
반응형

자료구조 형식이라고 하던데... ArrayList와 LinkedList라는 놈이 있다..
사용하는 방법도 똑같다. 선언할때만 틀리고

<> 안에는 타입을 넣어야 하는데 그냥 String으로 선언하는거 넣어 봤다.

ArrayList<String> list = new ArrayList<String>();
LinkedList<String> list = new LinkedList<String>();

list.get(1);
list.add("kei");
list.add(2, "kei2");
list.set(1, "hello");
list.remove(2);

뭐 이런식으로 똑같다.
근제 차이점은 성능이다

ArrayList는 일렬로 쭉 ~ 나열해 뒀고
LinkedList는 한놈한놈마다 서로를 가르키게 링크를 걸어 두고 첫놈과 끝에 놈 위치만 보관하면 된다.

그러면 읽는 일이 많을때는 배열의 인덱스를 쫘라락 타고 가서 바로 읽을 수 있는 ArrayList 가 성능이 좋고
추가, 삭제가 빈번하게 일어 난다면 앞뒤놈 링크만 홀라당 끊어 먹고 다시 연결하는 LinkedList 가 성능이 더 좋다.

용도에 따라서 골라서 선언하자.

그런데 LinkedList 얘를 쓸때 순차적으로 읽어 들일 수 있는 방법이 있다.
앞에 찾은 넘의 위치를 기억하고 있다가 바로 다음 녀석을 읽어 들일 수 있는 방식이다.
iterator라는건데..

Iterrator<String> iter = list.iterlator();
While( iterator.hasNext()) {
Stringstr = iterator.next();
}

이렇게 쓴다고 함.....
반응형

댓글