Java 다시 익히기(자료형 편)

최지수·2022년 12월 21일
0

Java 다시 익히기

목록 보기
1/1

자바 자료형

stringBuffer

: 문자열을 추가하거나 변경할 때 주로 사용하는 자료형
  • stringBuffer 자료형과 함께 사용하는 메서드
    - append() : 기존 문자열에 추가하고자 하는 문자열을 추가할 수 있는 메서드

    • insert() : 특정 위치(index)에 원하는 문자열을 추가할 수 있는 메서드

    • substring() : String 자료형에서 사용하는 substring과 사용법 같음
      - 문자열에서 자르고 싶은 (시작 index, 마지막 index)로 사용 가능
      - 마지막 index의 문자열을 자르고자 하는 문자열에 포함되지 않으며, 해당 문자열을 직접적으로 바꾸지 않고 String 자료형으로 받아줘야 한다.

      package test;
      
        public class Test1 {
      
            public static void main(String[] args) {
      
                StringBuffer sb = new StringBuffer();
      
                sb.append("hello");
                sb.append(" ");
                sb.append("world!");
      
                System.out.println(sb); // hello world!
      
                sb.insert(5, " 2023");
      
                System.out.println(sb); // hello 2023 world!
      
                System.out.println(sb.substring(0, 10)); // hello 2023
            }
      
        }
      

참고사항
- .getClass().getName()으로 해당 변수에 자료형 타입을 확인할 수 있는데,
  StringBuffer 자료형에 toString()을 붙여 확인하면 String 타입으로 확인된다.

- String 자료형과 StringBuffer 자료형 모두 같은 결과값을 낼 수 있지만,
  String 자료형은 + 연산이 있을 때 마다 새로운 String 객체가 생성됨.
  또, 한 번 값이 생성되면 그 값을 변경할 수 없음.

StringBuffer는 반대로 값을 변경할 수 있다. 한 번 생성된 값을 언제든지 수정 가능.

*String에 사용하는 trim, toUpperCase의 경우 문자열을 변경하는 것이 아닌, 
	-> 또 다른 String 객체를 반환한 것.

- StringBuffer은 String보다 무거운 편에 속함. 메모리 사용량도 많고, 속도도 느림
	-> 문자열 변경 작업이 거의 없는 경우 그냥 String 사용하는 것이 유리.


Array

: 자료형의 집합
  1, 2, 3차원 배열 등 다차원 배열도 가능하지만 2차원 배열 이상은 잘 사용하지 않는다.
  • 배열의 특징
    1. 배열의 길이는 고정되어 있다.
    : 배열에서 특정 값을 삭제할 수는 있지만 배열 길이를 초과해서 추가할 수 는 없다.
    1. 배열의 값은 어떻게 접근?
      : array명[index]로 접근이 가능하다.
    2. 배열의 길이
      : array명.length로 접근이 가능하다
    3. 빈번한 배열의 오류
      : ArrayIndexOutOfBoundsException
      : 배열 길이를 벗어났을 때 발생한다.

List

: 배열과 비슷한 자료형 -> 배열보다 편리한 기능을 많이 갖고 있다.
: 리스트와 배열의 가장 큰 차이는
	-> 배열은 크기가 정해져 있고,
    	리스트의 크기는 동적으로 변한다.
  • ArrayList : 사용하기 위해서는 import java.util.ArrayList를 해야 한다.

  • 관련 메서드

    • add : ArrayList에 새로운 값을 추가할 때 사용하는 메서드
      - 위치를 지정하여 추가할 수 있다. .add(index, 값);
      - 위치를 지정하지 않으면 순서대로 list에 삽입이 된다.

    • get : ArrayList에 특정 인덱스의 값을 추출

    • size : ArrayList에 사이즈를 구함

    • contains : ArrayList 안에 해당 항목이 있는지 판별하여 boolean으로 return 한다.

    • remove : 2가지 방식이 있는데, 객체|인덱스 두 가지다.
      - 객체 방식의 경우, 객체에서 해당되는 항목을 삭제하고
      삭제 결과에 따라 true(성공), false(실패)를 return 한다.
      - 인덱스 방식의 경우, 해당 인덱스의 항목을 삭제하고, 삭제한 항목을 return한다.

package test;

import java.util.ArrayList;
import java.util.Arrays;

public class Test1 {

	public static void main(String[] args) {
		
		ArrayList<String> arr = new ArrayList<>();
		
		arr.add("A");
		arr.add("B");
		arr.add("C");
		arr.add(1,"D");
		
		System.out.println(arr.get(1)); // D
		System.out.println(arr.size()); // 4
		System.out.println(arr.contains("B")); //true
				
		System.out.println(arr.remove("A")); // true
		System.out.println(arr.remove(0)); // D
		System.out.println(arr); // [B, C]
		
		ArrayList<String> pit = new ArrayList<>();
//		Arrays.asList("123", "456", "789")
		
		pit.add("123");
		pit.add("456");
		pit.add("789");
		
		System.out.println(pit); 
        //[123,456,789]
		
		String res = String.join(",", pit);
		
		System.out.println(res); //123,456,789
		
	}

}

Map

  : 대응관계를 쉽게 표현할 수 있게 해 주는 자료형. -> Associative, Hash
  	- 리스트나 배열처럼 순차적으로 해당 요소 값을 구하지 X
	- Key를 통해 value를 얻음 (Map은 큰 특징)
	- Map 자료형에는 HashMap, LinkedHashMap, TreeMap 등이 있음.
  • HashMap과 관련된 메서드
    - put : HashMap에 자료형에 추가할 수 있는 메서드
    - get : key에 해당하는 value 값을 얻기 위해서 사용하는 메서드
    - getOrDefault : key 값에 대한 value가 null인 경우, value 위치에 있는 데이터를 return 한다.
    - containsKey : map에 해당 key가 있는지 조사하여 유무를 true, false로 return한다.
    - containsValue : map에 해당 value가 있는지 조사하여 유무를 true, false로 return한다.
    - remove : map의 항목을 삭제하는 메서드, key값에 해당디는 key와 value를 삭제한 후 value 값을 return.
    - size : map의 갯수를 return.
    - keySet : 모든 key를 모아서 Set 자료형으로 return.
package test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;

public class Test1 {

	public static void main(String[] args) {
		
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("사과", "Apple");
		map.put("포도", "grape");
		map.put("오렌지", "orange");
		System.out.println(map); // {포도=grape, 사과=Apple}
		
		System.out.println(map.get("사과")); // Apple
		System.out.println(map.getOrDefault("과일바구니", "basket"));  
        // basket
		System.out.println(map.containsKey("포도")); // true
		System.out.println(map.containsValue("basket")); // false
		System.out.println(map.remove("사과")); //Apple
		
		System.out.println(map); // {포도=grape, 오렌지=orange}
		System.out.println(map.size()); // 2
		
		System.out.println(map.keySet()); // [포도, 오렌지]
	
	}

}

Set

set 관련 자료

profile
MAKE A WISH

0개의 댓글