배열 / 향상된 for 문

jungseo·2023년 4월 20일
0

Java

목록 보기
4/10

회고

  • 1차원 배열
      배열이란 동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조
      
      변수를 개별적으로 선언하면 각 변수는 메모리상 흩어져 개별적으로 존재
      배열로 값을 저장할 경우 메모리상 연속적으로 값들이 모여서 저장
      배열의 각 요소는 0부터 시작하며 이 순번을 인덱스라고 한다.
      
      1. 배열을 가리킬 참조변수를 선언
      2. 배열이 생성되고 초기화
      3. 생성된 배열의 첫 번째 요소의 주소값이 참조변수에 할당
      
      int[] arr = new int[10];
      
      int[] arr = new int[] {1, 2, 3, ..., 10};
      
      
  • 2차원 배열
	외부 배열의 각 요소는 내부 배열의 주소값을 저장
    
    int[][] arr = new int[10][3];
    
    int[][] arr = new int[][] {
    	{1, 2, 3},
        {4, 5, 6},
        
        ...
        {28, 29, 30}
    };
    
    
  • 가변 배열
	2차원 이상의 배열에서는 더 자유로운 형태로 배열 생성 가능
    
    int[][] arr = new int[3][];
    
    arr[0] = new int[5];
    arr[1] = new int[6];
    arr[2] = new int[7];
    
    
  • 향상된 for문

      배열의 항목 개수만큼 반복하고 자동적으로 for문을 빠져나간다.
      향상된 for문은 배열을 순회하며 배열의 값을 읽어오는 것만 가능
      배열의 값을 수정할 수는 없다.
      
public class EnhancedForLoop {
  public static void main(String[] args) throws Exception{
    String[] arr = {"hey", "hi", "java"};
    for(String hello : arr) {
      System.out.println(hello);
    }
  }				//hello -> 배열에서 꺼낸 항목을 저장할 변수
}
hey
hi
java
  • 메서드
1. arr.length: 배열의 원소 수를 반환한다.

2. str.split(""): 문자열을 구분자 기준으로 분리해 배열에 넣는다.
					String str = "hello, world,!";
					String[] arr = str.split(",");
                    
3. System.arraycopy(): 
	배열의 일부 또는 전체 요소를 다른 배열로 복사한다.
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = new int[10];

System.arraycopy(arr1, 0, arr2, 3, 4)
//arr1 배열의 0인덱스에서 arr2 3인덱스에 4개를 복사한다.
4. str.replace("a", "b"): 문자열에서 "a" "b"로 교체한다.

회고

	오늘 내용은 어제 반복문 보다는 수월했던 것 같다. 메서드들을
    알면 알수록 더 편해지고 쉬워지는데 너무 많아서 전에 보기만 하고
    사용해보지 않았던 메서드는 기억에서 사라진다. 이것도 그저 많이
    써보며 익히는 수 밖에 없을 것 같다. 
    
    그룹 회고를 하며 세상엔 참 다양 사람들이 있다는걸 다시 한번 
    느끼게 됐다. 같은 목표로 함께 공부 하고 있는 사람들이 있다는게
    동기 부여도 되고 마음을 더 굳건히 하는데 도움이 되는 것 같다.
    
    내일은 클래스와 객체가 무엇인지에 대해 알아볼 예정이다.
    그동안 자주 나왔던 말이지만 혼자서 찾아보며 완벽히 이해하지
    못해서 찝찝했는데 한번 열심히 이해해 봐야겠다.
    
    하루하루 시간에 쫒기는 느낌이었는데 주말이 다가오니 마음이
    조금 느긋해진다. 주말엔 BufferedReader/BufferedWriter를
    공부해야겠다. 

0개의 댓글