[23.01.30] 67일차 [백엔드]

W·2023년 1월 30일
0

국비

목록 보기
99/119
package test;

import java.util.ArrayList;

public class Test1 {

	public static void main(String[] args) {
		// p388
		// 배열에 모든형 저장 => 업캐스팅 형변환(Object)
		ArrayList arr1 = new ArrayList();
		arr1.add(1);
		arr1.add("이");
		arr1.add(3.5);

		// 문자열 업캐스팅(Object) 형변환
		// 원래 형으로 형변환 => 다운캐스팅
//		String str = (String)arr1.get(1);
		for(int i = 0;i<arr1.size();i++) {
			Object str = arr1.get(i);
			System.out.println(str); // 1 이 3.5
		}
		
		// 제네릭 : 다양한 형을 선택해서 지정
		//	     : 형변환 없이 사용 
		//       : 컴파일러가 자료형 검증
		ArrayList<String> arr2 = new ArrayList<String>();
//		arr2.add(1); // 에러
		arr2.add("일");
		arr2.add("이");
		arr2.add("삼");
		String str2 = arr2.get(1);
		for(String s2 : arr2) {
			System.out.println(s2); // 일 이 삼
		}
		
		// <String> 형지정, <> 생략가능
		ArrayList<String> arr3 = new ArrayList<>();
		
	}

}
package test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;

public class Test2 {

	public static void main(String[] args) {
		// p.404 컬렉션 프레임 워크
		// 자료구조 : 기억장소(메모리) 구조
		//        : 프로그램 실행 중 메모리에 자료를 
		//          유지 관리하기 위해 사용
		// java.util 패키지 : 자바에 필요한 자료구조
		// => 컬렉션 프레임 워크(collection framework)
		// => 자바내장객체(자료 구조 라이브러리)
		
		// Collection 인터페이스 
		// - List인터페이스 -> 클래스 ArrayList, Vector, LinkedList
		// - Set 인터페이스 -> HashSet, TreeSet
				
		// Collection 인터페이스
		// - List 인터페이스 : 순차적인 자료를 관리
		// - Set 인터페이스 : 집합 (순서없음, 중복 허용 안함)
		// => add(), size(), remove(), clear()
		
		// Map 인터페이스(키,값) => 이름 : 홍길동, 나이 : 30, 특기 : 수영
		// - Hashtable, HashMap, TreeMap
		// => put(), get(), isEmpty(), remove()
		
		// 부모인터페이스 = 자식클래스
		// 처음에 기억장소 10개 할당 => 추가되면 10개씩 추가
		List<String> list = new ArrayList<>();
		
		// 처음에 기억장소 10개 할당(or 크기 지정) => 추가할 때 크기 지정 추가
		Vector <String> vector =new Vector<>();
		List<String> list2 = new Vector<>();
		vector.add("일");
		vector.add("이");
		vector.add("삼");
		System.out.println(vector.get(0)); // 일
		System.out.println(vector.get(1)); // 이
		System.out.println(vector.get(2)); // 삼
		
		// 배열 : 생성할때 용량 지정, 추가 용량 늘려서 사용
		// 링크드 리스트 : 요소를 추가할 때 동적으로 요소의 메모리 생성
		LinkedList<String> myList = new LinkedList<>();
		myList.add("A");
		myList.add("B");
		myList.add("C");
		System.out.println(myList); // [A, B, C]
		// 중간 삽입
		myList.add(1,"D");
		System.out.println(myList); // [A, D, B, C]
		
		// Iterator : 기억장소 접근, for, get()
		Iterator<String> ir = vector.iterator();
		while(ir.hasNext()) {
			//ir.hasNext() 데이터 있으면 true/false
			String s = ir.next();
			System.out.println(s);
		}
	}
}
package test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;

public class Test2 {

	public static void main(String[] args) {
		// p.404 컬렉션 프레임 워크
		// 자료구조 : 기억장소(메모리) 구조
		//        : 프로그램 실행 중 메모리에 자료를 
		//          유지 관리하기 위해 사용
		// java.util 패키지 : 자바에 필요한 자료구조
		// => 컬렉션 프레임 워크(collection framework)
		// => 자바내장객체(자료 구조 라이브러리)
		
		// Collection 인터페이스 
		// - List인터페이스 -> 클래스 ArrayList, Vector, LinkedList
		// - Set 인터페이스 -> HashSet, TreeSet
				
		// Collection 인터페이스
		// - List 인터페이스 : 순차적인 자료를 관리
		// - Set 인터페이스 : 집합 (순서없음, 중복 허용 안함)
		// => add(), size(), remove(), clear()
		
		// Map 인터페이스(키,값) => 이름 : 홍길동, 나이 : 30, 특기 : 수영
		// - Hashtable, HashMap, TreeMap
		// => put(), get(), isEmpty(), remove()
		
		// 부모인터페이스 = 자식클래스
		// 처음에 기억장소 10개 할당 => 추가되면 10개씩 추가
		List<String> list = new ArrayList<>();
		
		// 처음에 기억장소 10개 할당(or 크기 지정) => 추가할 때 크기 지정 추가
		Vector <String> vector =new Vector<>();
		List<String> list2 = new Vector<>();
		vector.add("일");
		vector.add("이");
		vector.add("삼");
		System.out.println(vector.get(0)); // 일
		System.out.println(vector.get(1)); // 이
		System.out.println(vector.get(2)); // 삼
		
		// 배열 : 생성할때 용량 지정, 추가 용량 늘려서 사용
		// 링크드 리스트 : 요소를 추가할 때 동적으로 요소의 메모리 생성
		LinkedList<String> myList = new LinkedList<>();
		myList.add("A");
		myList.add("B");
		myList.add("C");
		System.out.println(myList); // [A, B, C]
		// 중간 삽입
		myList.add(1,"D");
		System.out.println(myList); // [A, D, B, C]
		
		// Iterator : 기억장소 접근, for, get()
		Iterator<String> ir = vector.iterator();
		while(ir.hasNext()) {
			//ir.hasNext() 데이터 있으면 true/false
			String s = ir.next();
			System.out.println(s);
		}
	}
}
package test;

import java.util.HashSet;
import java.util.TreeSet;

public class Test3 {

	public static void main(String[] args) {
		// Set 인터페이스 : 순서없는 데이터, 중복없는 데이터
		
		HashSet<String> hashSet = new HashSet<>();
		hashSet.add("홍길동");
		hashSet.add("이길동");
		hashSet.add("홍길동");
		hashSet.add("삼길동");
		
		System.out.println(hashSet); // [홍길동, 삼길등, 이길동]
		
		//  TreeSet 클래스 : 중복 없는 데이터, 출력결과 정렬
		//                  이진트로(이진검색트리) 사용
		TreeSet<String> treeSet = new TreeSet<>();
		treeSet.add("홍길동");
		treeSet.add("이길동");
		treeSet.add("홍길동");
		treeSet.add("삼길동");
		System.out.println(treeSet); // [삼길동, 이길동, 홍길동]
	}
}
package test;

import java.util.HashMap;
import java.util.TreeMap;

public class Test4 {

	public static void main(String[] args) {
		// p439 Map 인터페이스 : 키, 값 => 자료 쌍
		// 		키 : 중복될 수 없음
		//      값 : 중복된 값 있음
		// 해시 알고리즘 구현 => 위치계산(해시함수)
		// 자료 추가, 검색 속도 빠름
		// HashMap 클래스
		
		HashMap<Integer, String> hashMap = new HashMap<>();
		hashMap.put(1, "홍길동");
		hashMap.put(2, "이길동");
		hashMap.put(3, "삼길동");
		System.out.println(hashMap.get(1)); // 홍길동
		System.out.println(hashMap.get(2)); // 이길동
		System.out.println(hashMap.get(3)); // 삼길동
		System.out.println(hashMap); // {1=홍길동, 2=이길동, 3=삼길동}
		
		// TreeMap 클래스 : 이진검색트리, key 값으로 정렬
		
		TreeMap<Integer, String> treeMap = new TreeMap<>();
		treeMap.put(5, "오길동");
		treeMap.put(7, "칠길동");
		treeMap.put(6, "육길동");
		System.out.println(treeMap); // {5=오길동, 6=육길동, 7=칠길동}


	}

}

0개의 댓글