Dev log - 52, Java #7

박강산·2022년 6월 20일
0

Java 문법

Java Collection (Set, List, Map)

  • 자료 구조, 동적 배열 개념인 컬렉션 프레임워크, 자료의 삽입, 삭제, 검색 등을 포함해 어떠한 자료형이라도 담을 수 있으며 크기가 자유롭게 늘어남

  • Set : 순서가 보장되지 않고, 데이터들의 중복을 허용하지 않음

  • List : 기본적으로 데이터들이 순서대로 저장되며, 중복을 허용

  • Map : Key와 Value로 이루어지는 데이터들의 집합, 순서가 보장되지 않고, Key값의 중복은 허용하지 않지만, Value값의 중복은 허용

Set

  • 순서가 보장되지 않고, 데이터들의 중복을 허용하지 않음

  • Set set이름 = new HashSet(); 와 같은 문법으로 작성

	public static void main(String[] args) {
		Set set = new HashSet();
		set.add("one");
		set.add("second");
		set.add("3rd");
		set.add(new Integer(4));
		set.add(new Float(5.0F));
		set.add("second");
		set.add(new Integer(4));
		System.out.println(set);

List

  • 기본적으로 데이터들이 순서대로 저장되며, 중복을 허용

  • List list이름 = new ArrayList(); 와 같은 문법으로 작성

	public static void main(String[] args) {
		List list = new ArrayList();
		list.add("one");
		list.add("two");
		list.add("3rd");
		list.add(new Integer(4));
		list.add(new Float(5.0F));
		list.add("second");
		list.add(new Integer(4));
		System.out.println(list);
	}

제네릭 (generic)

  • <> 안에 어떠한 타입을 미리 선언해서 해당 ArrayList, List 등이 사용할 객체의 타입을 지정함, 해당 데이터 타입만 사용할 수 있게 해줌

  • class MyArray<Integer> {}, MyArray<Integer> myArr = new MyArray<Integer>()와 같은 문법으로 작성

Enhanced for Loop

  • 배열과 컬렉션의 모든 요소를 참조할 수 있게 해주는 반복 구문
 for (타입 변수이름 : 배열이나 컬렉션 이름) {
    반복 명령문;
}

Map

  • Key와 Value로 이루어지는 데이터들의 집합, 순서가 보장되지 않고, Key값의 중복은 허용하지 않지만, Value값의 중복은 허용

  • map.put(2(Key값), "관우"(Value값)); 밑의 예제에서는 다음과 같이 활용

  • Map<타입> map = new HashMap<타입>(); 와 같은 문법으로 작성

	public static void main(String[] args) {
		Map<Integer, String> map = new HashMap<Integer, String>();
		map.put(new Integer(1), "유비"); // 자바 버전9 까지만 사용한 문법
		map.put(Integer.valueOf(2), "관우"); // 문법 오류없이 작성하는 방법
		map.put(3, "장비"); // 위와 같은 문법이지만, 컴파일 과정 시 자동으로 수정됨
        
		System.out.println(map.get(new Integer(3)) + "\n");

		Set<Integer> set = map.keySet();
		for (Integer integer : set) {
			System.out.println(integer);
			System.out.println(map.get(integer));
		}
	}

profile
안녕하세요. 맡은 업무를 확실하게 수행하는 웹 개발자가 되기 위하여 끊임없이 학습에 정진하겠습니다.

0개의 댓글

관련 채용 정보