[JAVA] 배열

2024. 8. 30. 19:45·Back-End/Java

[작성일: 2023. 01. 16]

 

배열(Array)

  • 동일한 특성을 갖는 여러 개의 변수 모음
  • 많은 양의 데이터를 다룰 때 유용함.
  • 배열의 각 요소는 서로 연속적임.

 

 

 

학생 100명에 대한 변수

student0001 ~ student1000 : 학생 이름
모든 학생 이름 앞에 knight를 붙여야 하는 경우
Strint[] student = new String[1000] ➡️ 1000개의  String값을 저장할 수 있는 배열 생성

 

 

 

 

 

배열의 선언과 생성

  • 타입 또는 변수 이름 뒤에 대괄호[]를 붙여 배열을 선언
  • 배열을 선언한다고 해서 값을 저장할 공간이 생성되는 것이 아닌, 배열을 다루는데 필요한 변수가 생성됨.

 

선언 방법 선언 예시
타입[] 변수이름; int [] score;
타입 변수이름 []; int score[];
String name[];
타입[] 변수이름; = new 타입[값] int[] score = new int[5]
배열의 생성과 선언을 동시에 함

 

 

 

 

 

배열의 초기화

  • 생성된 배열에 처음으로 값을 저장하는 것
// 1번
int[] score = new int[5]; // 크기가 5인 int형 배열을 생성.
score[0] = 100; 	  // 각 요소에 직접 값을 저장함.
score[1] = 90;
score[2] = 80;
score[3] = 70;
score[4] = 60;

// 2번
int[] score = {100, 90, 80, 70, 60};

// 3번
int[] score = new int[] {100, 90, 80, 70, 60}

// 4번
int[] score;
score = new int[] {100, 90, 80, 70, 60}

 

 

 

 

 

배열의 활용

배열에 값 저장하고 읽기

score[3] 100;		// 배열 score의 4번째 요소에 100을 저장.
int value = score[3];   // 배열 score의 4번째 요소에 저장된 값을 읽어서 value에 저장.

 

 

 

배열이름.length

  • 배열의 길이를 알려줌.
int[] score = {100, 90, 80, 70, 60};

for(int i=0; i<6; i++) {
  System.out.println(score[i]);
}

⬇️

for(int i=0; i<score.length; i++) {
  System.out.println(score[i]);
} // 배열의 길이 6이 출력됨.

 

 

 

 

 

다차원 배열의 선언과 생성

  • 다차원 배열에서 마지막 차수의 크기를 지정하지 않고 각각 다르게 지정.
int[][] score = new int[5][3]; // 5행 3열의 2차원 배열 생성

//예제
class Ex5_8 {
  public static void main(String[] args) {
    int[][] score = { 
      { 100, 100, 100 },
      { 30, 60, 80 },
      { 80, 90, 65 },
      { 70, 40, 78 }
    }; // 4행 3열의 2차원 배열 생성
    int sum = 0;
         
    for(int i=0; i < score.length; i++) {
      for(int j=0; score[0].length; j++) {
      System.out.println("score[%d][%d]=%d%n", i, j, score[i][j]);
                 
        sum += score[i][j];
      }
    }        
    System.out.println("sum=" + sum);
  }
}

 

 

 

 

 

배열 복사

for문을 이용한 복사

int[] num = {1, 2, 3, 4, 5};
int[] newNum = new int[10];

for(int i=0; i<num.length; i++){
  newNum[i] = num[i]; // 배열 num의 값을 newNum에 저장.

 

 

 

Enhanced for(향상된 for문)

  • for문보다 코드 길이가 짧음.
  • 순회하는 데이터를 통해 어떤 데이터를 사용하는지 쉽게 알 수 있음.

 

 

 

배열 연습_1

System.out.println("Array Test");

String[] str;
str = new String[5];

str[0] = "AAA";

String[] student1 = new String[5];
String[] student2 = {"A", "B", "C". "D", "E"};
int[] score1 = new int[5];
int[] score2 = {10, 20, 10, 20, 30};



// 모든 학생들의 이름과 점수를 출력하시오.
// Student[학생이름] : **점
// for문 사용


for(int i=0; i<student2.length; i++) {
  System.out.println("Student[" + student2[i] + "] : " + score2[i] + "점");
}

 

이클립스 실행결과

 

 

 

 

배열 연습_2

String[][] school = {{"A", "B"}, {"C", "D"}};
System.out.println(school[0][0]); // A학생
System.out.println(school[1][0]); // C학생

// String[][][] : 지역 + 학교 + 반 → 3차원 배열도 가능하나 잘 사용하지 않음

for(String name : student2) {
  System.out.println("[Enhanced For]" + name);
}


// Enhanced for를 이용하여 school의 모든 학생 이름을 출력하시오.
for(String[] sclass : school) {
  for(String sname : sclass) {
    System.out.println("[Enhanced For2]" + sname);
  }
}


for(int i=0; i<2; i++) {
  for(int j=0; j<2; j++) {
    System.out.println("[Normal For]" + school[i][j]);
  }
}

이클립스 실행결과

 

 

 

 

 

 

 

 

 

 


🐣 해당 게시글은 자바의 정석(남궁성 님) 영상으로 함께 공부하며 요약/정리한 글입니다.
🐣 입문 개발자가 작성한 글이므로 틀린 내용이나 오타가 있을 수 있습니다.

 

저작자표시 비영리 변경금지 (새창열림)
'Back-End/Java' 카테고리의 다른 글
  • [JAVA] 객체지향 - 역사, 인스턴스, 클래스
  • [JAVA] 객체지향 - 변수
  • [JAVA] 기타 제어문 - break, continue
  • [JAVA] 반복문 - while문 / do - while문
뚜비
뚜비
1년차 백엔드&iOS 개발자의 감자 탈출 블로그 🥔🥔
  • 뚜비
    뚜비의 개발로그
    뚜비
  • 전체
    오늘
    어제
  • 글쓰기     관리
    • Devlog
      • Back-End
        • Java
        • Spring
        • JPA
        • HTTP
        • Security
        • Back-End
        • Front-End
      • 알고리즘
      • iOS
        • Swift
      • Database
      • Tips
        • Git & GitHub
        • A to Z
      • 프로젝트
      • 생각정리
  • 태그

    DB
    자바
    생성자
    MVC
    javascript
    데이터베이스
    스프링
    JPA
    jsp
    백준
    Java
    성능최적화
    자바스크립트
    Security
    변수
    최주호
    김영한
    의존성주입
    Database
    프로그래머스
    Swift
    spring
    HTTP
    알고리즘
    게시판만들기
    Spring Security
    객체
    다형성
    sql
    html
  • hELLO· Designed By정상우.v4.10.0
뚜비
[JAVA] 배열
상단으로

티스토리툴바