[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
      • 프로젝트
      • 생각정리
  • 태그

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

티스토리툴바