Archives
Recent Posts
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Today
Total
관리 메뉴

안드로이드 개발자의 창고

[8일차 Java] Collection / List / Map / Set 본문

Computer/Java

[8일차 Java] Collection / List / Map / Set

Wise-99 2023. 5. 7. 00:22

 

 

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT

 

 

 

📖 Collection이란?

  • 객체들을 모아 관리하는 요소들
    • Generic type
      • Collection들은 Generic type 이라는 것을 설정할 수 있다.
      • Generic type은 Collection이 관리할 객체의 타입을 지정하는 것으로써 객체를 추출할 때 형변환을 자동으로 해준다.
    • List : 순서를 통해 관리한다.
    • Map : 이름을 통해 관리한다.
    • Set : 집합(중복된 객체를 담을 수 없고, 순서와 이름에 대한 개념이 없다.)

 


 

📖 List 예제 코드

import java.util.ArrayList;

public class MainClass {
	public static void main(String[] args) {

		ArrayList list1 = new ArrayList();
		list1.add("문자열1");
		list1.add("문자열2");
		list1.add("문자열3");
		list1.add(100);
		list1.add(11.11);
        
		System.out.printf("객체 개수 : %d\n", list1.size()); // 5
        
		for(Object obj : list1) {
			System.out.println(obj);
		}
		
		// 객체를 추출하여 변수에 담아준다.
		String str1 = (String)list1.get(0);
		Integer int1 = (Integer)list1.get(3);
		Double double1 = (Double)list1.get(4);
		System.out.println(str1);    // 문자열1
		System.out.println(int1);    // 100
		System.out.println(double1); // 11.11
        
		ArrayList<String> list2 = new ArrayList<String>();
		list2.add("문자열1");
		list2.add("문자열2");
		list2.add("문자열3");
		list2.add(100); <<< 오류 발생
        
		String str10 = list2.get(0);
		String str11 = list2.get(1);
		String str12 = list2.get(2);
		System.out.printf("%s, %s, %s\n", str10, str11, str12);
        
		for(String str13 : list2) {
			System.out.println(str13);
		}
        
		// 리스트에서 객체를 제거한다.
		list1.remove(1);
		System.out.println(list1); // [문자열1, 문자열3, 100, 11.11]

		list1.remove("문자열3");     // [문자열1, 100, 11.11]
		System.out.println(list1);
        
		// 삽입
		list1.add(1, "추가된 문자열"); // [문자열1, 추가된 문자열, 100, 11.11]
		System.out.println(list1);
        
		// 모두 삭제
		list1.clear();
		System.out.println(list1);  // []
	}
}

✔️ 코드 해석

  • list1.add("문자열1");
    • ArrayList에 요소(객체)를 추가할 때는 add()를 사용한다.
  • list1.size()
    • ArrayList가 관리하고 있는 요소(객체)의 갯수를 출력한다.
  • for(Object obj : list1) { ...
    • Generic type을 정하지 않은 ArrayList는 Object 객체를 이용하여 값을 사용할 수 있다.
  • ArrayList<String> list2 = new ArrayList<String>();
    • Generic type을 String으로 지정하여 생성한다.
    • 이후 list2.add(100)을 실행하면 type이 맞지 않아 오류가 발생한다.
  • list1.remove(1);
    • ArrayList에 담긴 1번째 요소를 제거한다.
    • 요소의 순서는 0부터 시작한다.
  • list1.remove("문자열3");
    • ArrayList에 담긴 값 중에 "문자열3"을 찾아 제거한다.
    • 요소의 Generic type이 Integer인 경우 list1.(Integer.valueOf(삭제할 값))를 이용하여 해당 값을 삭제할 수 있다.
  • list1.add(1, "추가된 문자열");
    • 1번째 요소가 "추가된 문자열"이 되도록 삽입한다.
  • list1.clear();
    • 모든 요소를 제거한다.

 


 

📖 Map 예제 코드

import java.util.HashMap;

public class MainClass {
	public static void main(String[] args) {
		// <이름타입, 객체타입>
		HashMap<String, String> map1 = new HashMap<String, String>();
		map1.put("key1", "문자열1");
		map1.put("key2", "문자열2");
		map1.put("key3", "문자열3");

		String str100 = map1.get("key1");
		String str200 = map1.get("key2");
		String str300 = map1.get("key3");
		System.out.println(str100); // 문자열1
		System.out.println(str200); // 문자열2
		System.out.println(str300); // 문자열3

		// HashMap에서 객체 제거
		map1.remove("key1");
		System.out.println(map1); // {key2=문자열2, key3=문자열3}

		// 모두 제거
		map1.clear();
		System.out.println(map1); // {}
	}
}

✔️ 코드 해석

  • map1.put("key1", "문자열1");
    • put()을 이용하여 key와 value를 추가한다.
  • String str100 = map1.get("key1");
    • get()을 이용하여 해당 key가 가지고 있는 value를 가져온다.
  • map1.remove("key1");
    • remove()를 이용하여 해당 key 값에 해당하는 key와 value를 삭제한다.
  • map1.clear();
    • clear()를 이용하여 map1에 있는 모든 key와 value를 삭제한다.

 


 

📖 HashSet 예제 코드

import java.util.HashSet;
import java.util.Set;
import java.util.Iterator;

public class MainClass {
	public static void main(String[] args) {
        Set<String> set = new HashSet<String>();
        
        set.add("문자열1");
        set.add("문자열2");
        set.add("문자열3");
        set.add("문자열3");
        
        System.out.println(set.size()); // 3
        System.out.println(set); // [문자열3, 문자열2, 문자열1]
        
        Iterator iter = set.iterator();	// Iterator 사용
        while(iter.hasNext()) {
            System.out.print(iter.next() + " "); // 문자열3 문자열2 문자열1 
        }
        System.out.println();
        System.out.println(set.toString()); // [문자열3, 문자열2, 문자열1]
        
        System.out.println(set.contains("문자열1")); // true
        System.out.println(set.contains("문자열4")); // false

        set.remove("문자열1");
        System.out.println(set.toString()); // ["문자열3", "문자열2"]
        
        set.clear();
        System.out.println(set.toString()); // []
        
        System.out.println(set.isEmpty()); // true
    }
}
  •  

✔️ 코드 해석

  • set.add("문자열1");
    • HashSet에 문자열을 추가하려면 add() 메서드를 사용한다.
  • System.out.println(set.size());
    • HashSet 요소의 갯수를 확인하기 위해 size() 메서드를 사용한다.
    • Set은 중복을 허용하지 않기 때문에 3이 출력된다.
  • Iterator iter = set.iterator(); while(iter.hasNext()) { System.out.print(iter.next() + " "); 
    • Iterator는 Collection의 요소를 가져오거나 삭제할 때 사용한다.
    • iter.hasNext()은 HashSet에 값이 있으면 true, 값이 없으면 false이다.
    • iter.next()로 요소를 가져와 print한다.
  • set.toString()
    • HashSet이 가지고 있는 요소를 String으로 변환한다.
  • set.contains("문자열1")
    • HashSet에 요소가 있는지 확인할 때 contains() 메서드를 사용한다.
    • 해당하는 요소가 있으면 true, 없으면 false를 반환한다.
  • set.remove("문자열1");
    • 요소를 삭제할 때 remove()를 사용한다.
  • set.clear();
    • HashSet에 있는 모든 요소를 삭제할 때 clear()를 사용한다.
  • set.isEmpty()
    • HashSet이 비어있는지 확인할 때 isEmpty()를 사용한다.
    • 비어있으면 true, 요소가 들어있으면 false를 반환한다.

'Computer > Java' 카테고리의 다른 글

[9일차 Java] DataStream  (0) 2023.05.09
[9일차 Java] FileStream  (0) 2023.05.08
[8일차 Java] Date와 Calendar  (0) 2023.05.07
[8일차 Java] StringBuffer  (0) 2023.05.07
[8일차 Java] Wrapper Class  (0) 2023.05.07