[완료] 새로 정의해서 만든 객체를 리스트로 유지하려면 vector를 써야하나요??
글쓴이: tyolee83 / 작성시간: 금, 2007/06/29 - 1:22오전
새로 만들어낸 객체를 리스트로 유지하려면
vector를 써야 하는건지 궁금합니다.
제가 알기로 vector가 어떠한 객체든지 유지한다고 알고 있었는데
구글링을 해보니 legacy method라는 얘기가 있고....
List나 Arraylist들을 언급하던데
찾아보니 이것들은 Element e 를 저장하는거 같던데요....
여기에도 새로 정의한 객체를 저장하는 것이 가능한가요??
조언좀 부탁드립니다.
감사합니다. :)
Forums:
자바입니까? 요즘
자바입니까?
요즘 자바는 list와 같은 collection들에 타입을 지정해놓을 수도 있습니다. 이거 뭐라고 하더라..
네 자바입니다.
그럼 요즘에는 List를 사용한다는 말씀이신지...
//TODO
legacy method라는
legacy method라는 것이... 우리말로 하면 "예전 방식"쯤 됩니다.
말 그대로 예전 방식이지요.
자바가 제네릭스를 지원하지 않을때 쓰던 방식이라는 의미의 말일 듯 싶군요.
예전에는 vector를
예전에는 vector를 썼으나 요즘 책이나 sun이나 IBM쪽 소스를 보면 ArrayList를 많이 사용하는걸 볼 수 있는데요, vector는 인터페이스죠. 인터페이스를 사용하면 속도면에서 좀 이득이 있다고 합니다.
전 주로 arrayList를 사용하는데, 속도차이는 크게 못 느낍니다만.
Vector myList = new ArrayList();
이렇게 사용하라고 하네요..
===============
커피는 블랙이나 설탕만..
커피는 블랙이나 설탕만..
Vector 는 요새 잘
Vector 는 요새 잘 안사용합니다. 역사적인 이유로 남아있는 녀석이지요. 자바에서 리스트를 사용하시려면 List 인터페이스를 구현하고 있는 다른 클래스들, 즉, ArrayList, LinkedList 같은 녀석들을 사용하시면 됩니다. ArrayList 가 벡터와 가장 가깝지요.
Vector 는 원래 JDK 1.0 에서부터 제공되었지만, 1.2 이후에 Collection framework 가 등장하면서 보다 일관성있는 인터페이스와 명칭을 가진 클래스들이 제공되게 되었습니다. Vector 역시 Collection framework 의 List 인터페이스를 구현하고 있기는 하지만, Collection framework 의 다른 멤버들이 택하고 있는 컨벤션과 좀 차이가 있습니다.
예를 들어 Vector 는 thread-safety 를 보장합니다. 하지만 single thread 환경에서라면 쓸데 없는 오버 헤드가 있는 셈이지요. ArrayList, LinkedList 같은 놈들은 thread-safety 를 보장하지 않습니다. 만약에 thread-safety 가 보장되어야 한다면, Collections.synchronizedList 를 사용해 thread-safe 한 wrapper 를 만들어 사용하는 방식입니다.
그리고 윗 분이 Vector 를 인터페이스라고 하셨는데 Vector 는 인터페이스가 아닙니다. "concrete" class 입니다. 또, 인터페이스와 속도도 아무런 관련없습니다.^^
댓글 달기