수업/수업정리
[java] 2024-04-12-오전:컬렉션 프레임 워크
Dev.chandel
2024. 4. 15. 13:48
1. 컬렉션 프레임 워크
(1) 개념
- 널리 알려진 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 관련 인터페이스와 클래스들을 포함시켜 높은 java.util패키지
- 주요 인터페이스 : List, Set, Map
(2) 인터페이스 별 특징과 구현 클래스
Collection | ||
List | Map | Set |
ArrayList, Vector, LinkedList | HashMap, Hashtable, TreeMap, Properties | HashSet, TreeSet |
순서를 유지하고 저장 중복 저장 가능 |
키와 값으로 구성된 엔트리 저장 키는 중복 저장 불가능 |
순서를 유지하지 않고 저장 중복 저장 불가능 |
2. List 컬렉션
(1) 특징
- 객체를 컬렉션으로 관리하기 때문에 객체를 저장하면 인덱스가 부여되고 인덱스로 객체를 검색, 삭제 가능
(2) 인덱스로 객체를 관리하는 메소드 종류
기능 | 메소드 | 설명 |
객체 추가 |
boolean add(E e) | 주어진 객체를 맨 끝에 추가 |
void add(int index, E element) | 주어진 인덱스에 객체를 추가 | |
set(int index, E element) | 주어진 인덱스의 객체를 새로운 객체로 수정 | |
객체 검색 |
boolean contains(Object o) | 주어진 객체가 저장되어 있는지 여부확인 |
E get(int index) | 주어진 인덱스의 객체 반환 | |
isEmpty() | 컬렉션이 비어이는지 조사 | |
int size() | 저장되어 있는 전체 객체 수를 반환 | |
객체 삭제 |
void clear() | 저장된 모든 객체 삭제 |
E remove(int index) | 주어진 인덱스에 저장된 객체를 삭제 | |
boolean remove(Object o) | 주어진 객체를 삭제 |
(3) ArrayList
1) 개념
- List 컬렉션에서 가장 많이 사용되는 컬렉션.
- ArrayList에 객체를 추가하면 내부 배열에 객체가 저장되는 구조
- 일반 배열과의 차이점 : ArrayList는 제한 없이 객체 추가 가능
2) 특징
- 객체 자체를 저장하는 것이 아니라 객체의 번지를 저장
- 동일한 객체를 중복 저장가능(동일한 번지가 저장됨)
- null 저장 가능
- 객체를 저장하면 인덱스 0번부터 차례대로 저장되는 구조
3) 사용 예시
package ArrayList;
import java.util.ArrayList;
import java.util.List;
public class SampleAddArrayList {
public static void main(String[] args)
{
System.out.println("SampleAddArrayList");
List<String> list=new ArrayList<String>();
//List.add(리스트를 선언한 자료형 타입 데이터): 해당 데이터를 저장(순차적으로 저장됨)
list.add("문자1");
list.add("문자2");
list.add("문자3");
list.add("문자4");
list.add("문자5");
//List.get(인덱스번호):해당 인덱스 번호의 리스트 객체의 정보를 가져온다
System.out.println(list);
System.out.println(list.get(0));
System.out.println(list.get(1));
System.out.println(list.get(2));
//List.remove(인덱스번호):해당 인덱스 번호의 리스트 객체 삭제
System.out.println(list);
System.out.println("remove 실행");
list.remove(0);
System.out.println(list);
list.remove(1);
list.remove(2);
System.out.println(list);
//반복문을 이용한 리스트 추가
List<String> list2=new ArrayList<String>();
for(int i=0;i<5;i++)
{
list2.add(i+"번째 ArrayList객체");
}
System.out.println(list2);
//정수형 arraylist 추가
List<Integer> list3=new ArrayList<Integer>();
for(int i=0;i<5;i++)
{
list3.add(i*100);
}
System.out.println(list3);
}
}
package ArrayList;
import java.util.ArrayList;
import java.util.List;
class CarVO
{
String brand;
String model;
String color;
int speed;
public CarVO(String b, String m,String c,int s)
{
this.brand=b;
this.model=m;
this.color=c;
this.speed=s;
}
public String getBrand()
{
return this.brand;
}
public String getModel()
{
return this.model;
}
public String getColor()
{
return this.color;
}
public int getSpeed()
{
return this.speed;
}
}
public class SampleAddArrayList2 {
public static void main(String[] args)
{
System.out.println("SampleTypeArrayList2");
//클래스 타입의 arraylist생성
List<CarVO> list=new ArrayList<>();
list.add(new CarVO("현대","그랜저","흰색",300));
list.add(new CarVO("기아","k5","검정색",200));
System.out.println(list);
for(int i=0;i<list.size();i++)
{
System.out.println(list.get(i).getBrand());
System.out.println(list.get(i).getModel());
System.out.println(list.get(i).getColor());
System.out.println(list.get(i).getSpeed());
}
//리스트 내부 삭제
list.clear();
System.out.println(list);
}
}