[Java] 자료를 순차적으로 관리하는 방법 - 배열(array)

2022. 9. 4. 21:42·🍞 BackEnd/Java

- 동일한 자료형의 순차적 구조

- 인덱스 연산자[]를 이용하여 빠른 참조가 가능

- 물리적 위치와 논리적 위치가 동일

- 배열의 순서는 0부터 시작

- 자바에서는 객체 배열을 구현한 ArrayList를 많이 활용함

 

배열 선언과 초기화


- 배열 선언하기

int[] arr1 = new int[10];
int arr2[] = new int[10];

- 배열 초기화 하기

배열은 선언과 동시에 자료형에 따라 초기화된다(정수는 0, 실수는 0.0, 객체는 null)

필요에 따라 초기값을 지정할 수 있다.

int[] numbers = new int[] {10, 20, 30}; // 개수 생략해야 함

int[] numbers = {10, 20, 30}; // new int[] 생략 가능

int[] idx;
idx = new int[] {10, 20, 30}; // 선언 후 배열을 생성하는 경우는 new int[] 생략할 수 없음

 

 

배열 사용하기


- [] 인덱스 연산자 활용 - 배열 요소가 저장된 메모리의 위치를 연산하여 찾아 줌

- 배열을 이용하여 합을 구하기

 

int[] arr = new int[10];
int total = 0;

for(int i = 0, num = 1; i < arr.length; i++, num++){
  arr[i] = num;
}

for(int i = 0; i < arr.length; i++){
  total += arr[i];
}

System.out.println(total);

 

배열의 길이와 요소의 개수는 동일하지 않다.

- 배열을 선언하면 개수만큼 메모리가 할당되지만, 실제 요소(데이터)가 없는 경우도 있다.

- 배열의 length 속성은 배열의 개수를 반환해주기 때문에 요소의 개수와는 다르다.

 

- length를 활용하여 오류가 나는 경우

double[] dArr = new double[5];

dArr[0] = 1.1;
dArr[1] = 2.1;
dArr[2] = 3.1;

double mtotal = 1;
for(int i = 0; i < dArr.length; i++){
  mtotal *= dArr[i];
}

System.out.println(mtotal);

 

- 요소의 개수에 대한 변수(count)를 따로 유지해야 된다.

double[] dArr = new double[5];
int count = 0;
dArr[0] = 1.1; count++;
dArr[1] = 2.1; count++;
dArr[2] = 3.1; count++;

double mtotal = 1;
for(int i = 0; i < count; i++){
  mtotal *= dArr[i];
}

System.out.println(mtotal);

 

문자 A-Z까지 배열에 저장하고 출력

public class CharArrayTest {

	public static void main(String[] args) {

		char[] alpahbets = new char[26];
		char ch = 'A';

		for(int i = 0; i < alpahbets.length; i++) {
			alpahbets[i] = ch++;
		}

		for(int i = 0; i < alpahbets.length; i++) {
			System.out.println(alpahbets[i] + ", " + (int)alpahbets[i]);
		}
	}

}

 

향상된 for문 사용하기

배열의 n개 요소를 0부터 n-1까지 순차적으로 순회할 때 간단하게 사용할 수 있다.

for(변수 : 배열){

}

 

public class CharArrayTest {

	public static void main(String[] args) {

		char[] alpahbets = new char[26];
		char ch = 'A';

		for(int i = 0; i < alpahbets.length; i++) {
			alpahbets[i] = ch++;
		}

		for(char alpha : alpahbets) {
			System.out.println(alpha + ", " + (int)alpha);
		}

	}

}
저작자표시 (새창열림)

'🍞 BackEnd > Java' 카테고리의 다른 글

[Java] 객체 간의 상속 의미  (0) 2022.09.04
[Java] 배열(array)의 응용  (0) 2022.09.04
[Java] static 응용 - 싱글톤 패턴  (0) 2022.09.04
[Java] 인스턴스에서 공통으로 사용하는 static 변수  (0) 2022.09.04
[Java] 참조 자료형 변수  (0) 2022.09.04
'🍞 BackEnd/Java' 카테고리의 다른 글
  • [Java] 객체 간의 상속 의미
  • [Java] 배열(array)의 응용
  • [Java] static 응용 - 싱글톤 패턴
  • [Java] 인스턴스에서 공통으로 사용하는 static 변수
박빵이
박빵이
2025년에도 갓생살기
  • 박빵이
    기억보다 기록
    박빵이
  • 전체
    오늘
    어제
    • 분류 전체보기 (337)
      • 🍞 FrontEnd (97)
        • HTML+CSS (4)
        • JavaScript (17)
        • TypeScript (4)
        • React (52)
        • Next.js (2)
        • Android (15)
      • 🍞 BackEnd (24)
        • Java (15)
        • Node.js (6)
        • Spring (1)
      • 🍞 Cloud & Infra (0)
        • AWS SAA (0)
        • Microsoft Azure (0)
      • 🍞 Algorithm (147)
        • C++ (4)
        • Baekjoon (41)
        • Programmers (97)
      • 🍞 Computer Science (18)
        • 운영체제 (1)
        • 데이터 통신 (6)
        • 네트워크 (6)
        • 데이터베이스 (1)
      • 🍞 대외활동 & 부트캠프 (42)
        • 삼성 청년 SW 아카데미 (1)
        • LG유플러스 유레카 (0)
        • 한국대학생IT경영학회 (1)
        • IT연합동아리 UMC (17)
        • 길벗 블로깅 멘토 (18)
        • IT연합동아리 피로그래밍 (3)
        • 개발 컨퍼런스 (2)
  • 블로그 메뉴

    • Admin
  • 링크

    • GitHub
  • 인기 글

  • 태그

    프로그래머스
    Front
    Java
    알고리즘
    코딩자율학습
    길벗 블로깅 멘토링
    유니온파인드
    안드로이드
    level1
    level2
    위상정렬
    길벗 블로깅 멘토
    JavaScript
    umc
    Android
    react
    map
    코틀린
    백준
    C++
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
박빵이
[Java] 자료를 순차적으로 관리하는 방법 - 배열(array)
상단으로

티스토리툴바