수업/수업정리

[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);
	}
	
	
}