Backend/Java

Java 배열

호ㅁl 2022. 11. 4. 12:27
배열이란?
같은타입의 같은 용도의 데이터 집합체
메모리를 효율적으로 사용할 수 있다.

배열 선언과 초기화

int[] a =new int[1000]; //int형 배열선언과 초기화
  • 자료형[] 배열이름 = new 자료형[개수]
  • 'new' 예약어는  배열을 새로 만든다는 의미이다.
  • 배열 요소의 자료형은 모두 같다.
  • 배열을 선언하면 그와 동시에 각 요소의 값이 초기화된다.
int[] aa = new int[] {1,2,3,4,5,6,7,8,9,10};//배열선언과 동시에 초기화, 개수는 생략한다. 개수작성시 오류발생함.
int[] aaa = {1,2,3,4,5,6,7,8,9,10}; //선언과 동시에 초기화 시 new int[] 생략 가능하다.

int[] aa; //int형 배열 선언
aa = new int[]{1,2,3}; //배열생성 후 초기화

배열의 자료형을 먼저 선언하고 초기화하는 경우에는 new int[]를 생략할 수 없다.

 

a[0] = 1; //배열의 첫번째 요소 인덱스는 0부터 시작
a[1] = 2;
a[3] = 10;

선언한 배열의 각 요소에 값을 넣을때나 가져올 때는 []를 사용하고,

배열 요소에 값을 저장할땐 위와 같은 코드를 작성한다.

 

숫자 배열

int[] a;
a = new int[1000];

		for(int i = 0; i <a.length; i++) {//a.length 배열이 크기를 알수있음.
			a[i] = i+1;
			System.out.println("각 배열방에 담긴 값은? "+a[i]);}

자바의 배열은 배열 길이를 나타내는 length 속성을 가진다.

배열길이는 처음에 선언한 배열의 전체 요소 개수를 의미한다.

전체길이를 알고 싶은 배열 이름뒤에 도트( . ) 연산자를 붙이고 length속성을 쓰면 배열 길이를 반환한다.

 

//1에서 10까지의 합을 배열을 통해서 구하시오.
		int[] b = new int[10];
		int sum = 0;
		for(int i = 0; i<b.length; i++) {
			b[i] = i+1;
			sum += b[i];		
		}
		System.out.println("1에서 10까지의 합은? "+sum);

배열과 for문은 주로 같이 사용된다.

 

 

문자배열

//문자형 배열
		char[] alpa = new char[26]; //char타입으로 26개의 배열을 만들다.
		char ch = 'A';
		
		for(int i = 0; i<alpa.length; i++) {
			alpa[i] = ch;			
			ch++;			
		}
		
		for(int i = 0; i<alpa.length; i++) {
			System.out.println("담긴 알파벳은? "+alpa[i]);
			System.out.println("담긴 알파벳의 매칭된번호는? "+(int)alpa[i]);
		}

출력값

 

 

객체배열

package javastudy;

public class Book {
	
    //멤버변수 선언
	String name; 
	
    //책 이름을 매개변수로 받는 생성자
	public Book(String nm){ //생성자생성, String타입의  매개변수nm
		this.name = nm;	//매개변수의 값을 멤버변수에 담는다.
	} 
	
    //책의 정보를 출력해주는 메소드
	public void explain() {
		System.out.println("책이름은? "+ name);
	}
}

먼저 클래스를 생성한다.

책 이름을 매개변수로 받는 생성자를 만든다.

//객체배열 생성

		//Book타입의 배열 3개를 만든다.
		Book[] book = new Book[3]; //Book 클래스의 생성자를 참조변수 book에 담는다.
		
		//인스턴스 생성 후 배열에 저장
        book[0] = new Book("국어"); //매개변수의 인자값으로 국어를 넘긴다.
		book[1] = new Book("수학");
		book[2] = new Book("영어");
		
		for(int i = 0; i<book.length; i ++) {
			System.out.println("책이름을 알려주세요. ");
			book[i].explain();
		}

 

향상된  for문

향상된 for문은 배열의 처음부터 끝까지 모든 요소를 참조할 때 사용하기 편리한 반복문이다.

배열 요소 값을 순서대로 하나씩 가져와서 변수에 대입한다.

초기화와 종료조건이 없기 때문에 모든 배열의 시작 요소부터 끝요소까지 실행한다.

//향상된 for문 - 주로 객체배열을 돌릴때 사용한다.
		for(Book b :book) {
			System.out.println("책이름을 알려주세요.");
			b.explain();
		}

문법 - for(자료형 변수명 : 배열명) { 반복실행문 }

 

 

2차원 배열

//2차원 배열	
    	int[][] arr = {{1,2,3},{4,5,6}};
		
		System.out.println("첫번째방 첫번째 값은?" +arr[0][0]);
		System.out.println("두번째방 두번째 값은?" +arr[1][1]);
		
		for(int i = 0; i<arr.length; i++) { //각 방의 크기
			System.out.println(arr[i]);
			for(int j = 0; j<arr[i].length; j++) { //각 방마다 들어가 있는 요소의 크기
				System.out.println(arr[i][j]);
			}
		}

행과 열 개수에 맞추어서 중괄호{} 안에 콤마(,)로 구분하여 값을 작성한다.