Vector
list 계열의 컬렉션
arraylist랑 거의 비슷한데 얘는 동기화메소드라서 멀티가 가능하대! 동시에 지우고 입력하는게 가능하다고 함. 두개의 차이는 그거 하나라서 다른거 거의 다 같은방법으로 진행하면 됩니당
1. 컬렉션 객체 생성 List <Student> vec = new Vector<>(); =>strudent타입은 이것도 마찬가지로 저번에 공부했던 클래스!
2.컬렉션에 저장할 객체 생성
Student stu1 = new Student("가길동",30,"2022학번");
Student stu2 = new Student("나길동",25,"2015학번");
Student stu3 = new Student("라길동",35,"2020학번");
Student stu4 = new Student("다길동",19,"1988학번");
3.객체저장
vec.add(stu1);
vec.add(stu2);
vec.add(stu3);
vec.add(stu4);
4.출력하기
4-1 일반for문
for(int i=0 ; i< vec.size() ; i ++) vec.get(i).print();
4-2 확장for문
for(Student s : vec) s.print();
4-3 반복기
Iterator<Student> it = vec.iterator();
while(it.hasNext()) it.next().print();
++4-4 열거형으로 꺼내오는 방법도 가능해짐 (Vector라서 있는 기능인가봄)
elements()메소드로 Enumeration 타입얻기
[ Enumeration타입의 주요 메소드]
- hasMoreElements():저장된 객체가 있으면 true,없으면 false반환
- nextElement( );저장된 객체 얻을때
Enumeration<Student> em = ((Vector)vec).elements();
while(em.hasmoreElements()) em.nextElement().print();
5.삭제하기
5-1 인덱스로 삭제하기
vec.remove(1).name ; => 1번방에 있는 자료 삭제됨
5-2 인스턴스(주소)로 삭제
ver.remove(stu2);
문제)vec컬렉션에 저장된 Student객체들을 나이가 높은 순으로 재 배치후 출력하여라.(나이순으로 내림차순 정렬)
단,List계열의 get(인덱스) 및 set(인덱스,객체)메소드 사용
for(int i= 0; i < vec.size( )-1 ;i++)
for(int k =i+1 ; k<vec.size() ; k++)
if( vec.get(i).age < vec.get(k).age ){
Student temp = vec.get(i);
vec.set(i,vec.get(k));
vec.set(k,temp); => 재배치
}
for(Student s:vec) s.print(); =>출력
'학원 > JAVA' 카테고리의 다른 글
10/6 16-7 collection(MAP-TreeMap) (0) | 2022.10.06 |
---|---|
10/6 16-6 collection(Map-HashMap) (0) | 2022.10.06 |
10/6 16-4 collection(List-ArrayList) (1) | 2022.10.06 |
10/6 16-3 collection(HashSet) (0) | 2022.10.06 |
10/6 16-2 collection 들어가기 (0) | 2022.10.06 |