[개인공부] ch5~

Walter Mitty·2022년 11월 2일
0

개인공부

목록 보기
5/40
post-thumbnail
  • 배열
    • 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것.

      배열 이름이 없다. 그러나 자동으로 idx 번호가 붙는다.
      저장공간이 붙어있다(연속적이다)

  • 배열의 길이
    • 배열이름.length() - 배열의 길이(int형 상수)
    • 배열은 한번 생성하면 그 길이를 바꿀 수 없다 = 상수!
      • 왜 못바꿔?
        메모리 공간이 연속적이기 때문에 부족하면 미리 만들어 놓은 메모리공간을 옮겨야하는데 그럴 수 없음..! 그 메모리공간 크기 만큼 새로 만드는 수밖에 없음.
      • 공간이 부족해서 늘리고 싶으면 어떡해?

  • 배열의 출력

    • 배열 이름으로 출력하려고 하면 [I@14737bb 같은 문자열이 출력된다.
    		int[] iArr = {100, 95, 80, 70, 60};
    		System.out.println(iArr);
    		//[I@14737bb 와 같은 형식의 문자열이 출력된다.
    		/*
    		- [ 는 배열이라는 뜻
    		- I 는 Integer 타입이라는 뜻
    		- @ 위치는 +숫자(주소값)이다.
    		*/
      출력 방법 2가지
      1. forfor(int i=0; i<=iArr.length()-1; i++) {
      	System.out.printlm(iArr[i]);
      }
      
      2. Arrays 사용
      System.out.printlm(Arrays.toString(iArr); // "[100, 95, 80, 70, 60]"
      //Arrays 클래스를 다루는데 필요한 메서드를 제공해준다.
      //.toString -> 배열의 내용을 문자형식으로 바꿔준다.
    
    • 예외로, char 타입은 그대로 출력이 된다
      char[] chArr = {'a', 'b', 'c', 'd'};
      System.out.println(chArr);
      //abcd 출력된다.
  • String 배열

String[] strArr = {"가위", "바위", "보"};
System.out.println(strArr);

for(int i=0; i<10; i++) {
	int tmp = (int)(Math.random() * 3);
    System.out.println(strArr[tmp]); 
    /*
    랜덤하게 가위,바위,보 중 10번 찍힘
    가위
    바위
    바위
    가위
    보
    바위
    보
    가위
    바위
    가위
    */
}

  • 2차원 배열
    • 2차원 배열에서 모든 배열의 합을 구하려면 이중 반복문을 써야한다.

String 클래스

  1. String 클래스는 char[]와 메서드를 결합한 것이다.
    String 클래스 char[] + 메서드

  2. String 클래스는 내용을 변경할 수 없다.(read only)

  3. String 클래스의 주요 메서드


Arrays 클래스

  • 문자열 비교와 출력

    • equals()
    • deepEquals()
    		String[][] str2D = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};
    		String[][] str2D2 = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};
    
    		System.out.prinrln(Arrays.equals(str2D, str2D2)); //false
    		System.out.prinrln(Arrays.deepEquals(str2D, str2D2)); //true
    • toString()
    • deepToString() - 2차원이상 , 다차원
       	int[] arr = {0,1,2,3,4};
       		int[][] arr2D = {{11,12}, {21,22}};
    
       		System.out.prinrln(Arrays.toString(arr)); // [0,1,2,3,4]
       		System.out.prinrln(Arrays.deepToString(arr2D)); // [[11,12],[21,22]]


  • 배열의 복사
    • copyOf()
    • copyOfRage()
  • 배열의 정렬
    • sort()
    	int[] arr = {3, 2, 0, 1, 4};
    	Arrays.sort(arr);
    	System.out.println(Arrays.toString(arr)); // [0.1.2.3.4]

0개의 댓글