개발자로 가는길 :: Java Collection framework(List)

Java Collection framework(List)

728x90
반응형

인터페이스별 특징 중요하니 외울것.

/*
 * 컬렉션 프레임워크
 * - List , Set 인터페이스가 상속  , 따로 Map인터페이스 가 있다
 * 
 * - List : 순서가 존재함 , 데이터 중복 허용
 *   구현클래스 : ArrayList, LinkedList , Stack ,Vector 등등
 * 
 * - Set  : 순서를 유지하지 않음, 데이터 중복 허용하지 않음
 *   구현클래스 : HashSet , TreeSet 등등
 * 
 * - Map  : key,value 의 쌍으로 이루어진 데이터 집합
 *  순서를 유지하지 않음 , key는 중복이 되지 않고 value는 중복 허용
 *  구현클래스 : HashMap, TreeMap, Hashtable , Properties 등등

 * 
 * 컬렉션 : 여러 데이터들을 모아놓은 것
 * framework : 표준화 , 정형화된 프로그래밍 방식
 * 라이브러리 : 공통으로 사용될만한 유용한 기능을 모듈화
 * 
 */

 

/*
 * 배열과 List 동일한 개념
 * 배열은 크기를 변경할 수 없다.(새로운 배열 생성후 데이터 복사 작업이 필요)
 * 비순차적인 데이터의 추가 또는 삭제에 시간이 많이 걸림
 * 
 * ==> 배열의 개선 : List(ArrayList 내부적으로는 배열의 동작방식과 똑같이 돌아감)
 * 
 * 
 * LinkedList
 * -ArrayList 단점 보완
 * 
 *  읽기(접근시간) 추가/삭제 비고
 *  ArrayList 빠르다 느리다 순차적인 추가/삭제는 더 빠름 , 비효율적 메모리 사용
 *  LinkedList 느리다 빠르다 데이터가 많을수록 접근성이 좋음
 */  

 

List 연습 예제

public class ListEx1 {

	public static void main(String[] args) {
		List<Integer> list = new ArrayList<>();
		ArrayList<String> list2 = new ArrayList<>();
		
		System.out.println(""+list.size()); // 배열의 length 같은개념
		System.out.println(""+list.isEmpty()); // boolean 값
		
		//add() : 요소 추가
		list.add(1);
		list.add(2);
		list.add(3);
		list.add(4);
		list.add(5);
		
		list2.add("자바");
		list2.add("html");
		list2.add("script");
		list2.add("서블릿");
		
		System.out.println(list);
		System.out.println(list2);
		
		//추가할 내용이 없다면
		String fruits[] = {"사과" , "포도","멜론"};
		List<String> list3 = Arrays.asList(fruits);
		System.out.println(list3);
		//추가할 내용이 있다면
		List<String> list4 = new ArrayList<>(Arrays.asList(fruits));
		list4.add("참외");
		list4.add("딸기");
		
		System.out.println(list4);
		
        	//추가할 내용이 없다면
		String fruits[] = {"사과" , "포도","멜론"};
		List<String> list3 = Arrays.asList(fruits);
		System.out.println(list3);
		//추가할 내용이 있다면
		List<String> list4 = new ArrayList<>(Arrays.asList(fruits));
		list4.add("참외");
		list4.add("딸기");
		
		System.out.println(list4);
		
		//add(int index, 요소)
		list.add(3,6); //3번자리 6추가(기준수 뒤로 밀림)
		System.out.println(list);
		
		//set()
		list.set(3, 7); //3번자리 7로 바꿈
		System.out.println(list);
		
		//remove()
		list2.remove(0); //0번자리 값 삭제
		System.out.println(list2);
		
		list4.remove("사과"); // "사과" 삭제
		System.out.println(list4);
		
		//get()
		System.out.println(list4.get(2)); // 특정위치 요소 불러오기
		
		//indexof()
		System.out.println(list2.indexOf("서블릿")); // 요소의 위치 불러오기
		
		//sort
		Collections.sort(list); // 오름차순
		System.out.println(list);
		
		//Comparator.naturalOrder(): 오름차순  Comparator.reverseOrder(): 내림차순
		list.sort(Comparator.reverseOrder());
		System.out.println(list);
		
		
	}

}

 

728x90
반응형

'개발 > K-DigitalTraining 수강중' 카테고리의 다른 글

Java.io 설명과 , 예시  (0) 2023.03.14
Java Map interface  (0) 2023.03.13
Java LocalDate  (0) 2023.03.10
Java SimpleDateFormat  (0) 2023.03.10
Java Calendar  (0) 2023.03.09

댓글()