반응형

1. 자바 배열 선언하기 

자료형[] 배열이름 = new 자료형[배열의 크기];

int array[];
int[] array;

위에 와 같이 선언은 되지만 

int array[5];

크기 지정이 안되기 때문에 위에와 같이 선언하면 오류가 발생함.

그렇기 때문에 

public class Hello{
public static void main(String[] args) {
	int[] array_v1 = new int[5];
	array_v1[0] = 20; 
	array_v1[1] = 40;
	array_v1[2] = 60;
	array_v1[3] = 80;
	array_v1[4] = 100;
	
	int[] array_v2 = {10, 30, 60, 90, 120};
	int[] array_v3 = new int[] {5, 10, 15, 20, 25};
	int[] array_v4;
	array_v4 = new int[5];
	array_v4[0] = 20; 
	array_v4[1] = 40;
	array_v4[2] = 60;
	array_v4[3] = 80;
	array_v4[4] = 100;
	}
}

이렇게 선언할 수 있다.

 

2. 배열 정렬

전 c언어에서는 정렬을 하기 위해서는 보통 2중 for문을 사용하곤 했다. 하지만 자바에서는 Arrays.sort(배열이름)이라는 이 한 문장으로 오름차순 배열을 할 수 있다. 

 

적용 

import java.util.Arrays;
import java.util.Scanner;
public class Hello{
public static void main(String[] args) {
	Scanner scanner = new Scanner(System.in);
	int array[] = new int[5];
	System.out.println("양수 5개를 입력하세요.");
	
	for(int i=0; i<5; i++) 
		array[i] = scanner.nextInt();
	
	Arrays.sort(array);
	System.out.println("가장 큰 수는 " + array[4] + "입니다.");
	scanner.close();
	}
}

결과 

양수 5개를 입력하세요.
30 20 24 56 18
가장 큰 수는 56입니다.

3. 다차원 배열 

자바에서 다차원 배열은 c에서의 다차원 배열과 매우 비슷한 모습을 볼 수 있다.

다만, 다른 점이 하나 있다면 배열을 선언하는 부분이다.

적용 

import java.util.Arrays;
import java.util.Scanner;
public class Hello{
public static void main(String[] args) {
	int[][] array = new int[3][4]; //2차원 배열선언 
	int i, k;
	int val = 1;
	for(i=0; i<3; i++) {
		for(k=0; k<4; k++) {
			array[i][k] = val;
			val ++;
		}
	}
	System.out.println("array[0][0]부터 array[2][3]까지 출력");
	for(i=0; i<3; i++) {
		for(k=0; k<4; k++) {
			System.out.printf("%3d", array[i][k]);
		}
		System.out.println("\n");
	}
}
}

결과

array[0][0]부터 array[2][3]까지 출력
  1  2  3  4

  5  6  7  8

  9 10 11 12

4. System.arraycopy()

System.arraycopy(src, srcPos, dest, destPos, length);

src : 복사하고자 하는 소스, 원본
srcPos :위의 소스에서 어느 부분부터 읽어올지 위치를 정함.
dest : 복사하려는 대상
destPos : 위에 dest에서 자료를 받을 때, 어느 부분부터 쓸지 시작위치를 정함.
length : 원본에서 복사본까지 얼마큼 읽어 올지 입력

 

적용

import java.util.Arrays;
import java.util.Scanner;
public class Hello{
public static void main(String[] args) {
	int[] array = {10,30,50,70,90,60};
	int[] array2 = new int[4];
	System.arraycopy(array, 2, array2, 1, 3);
	for(int i=0; i<array2.length; i++) {
		System.out.println("array["+i+"] = " + array2[i]);
		}
	}
}

결과

array[0] = 0
array[1] = 50
array[2] = 70
array[3] = 90

5. Arrays.copyof()

Arrays.copyof(Object dest, int length)

Object dest : 복사하려는 대상 
int length :  dest에서 시작해서 몇 개의 길이 만큼 복사할지 길이를 정함.

 

적용

import java.util.Arrays;
import java.util.Scanner;
public class Hello{
public static void main(String[] args) {
	int[] array = {10,30,50,70,90,60};
	int[] array2 = Arrays.copyOf(array,3);
	for(int i=0; i<array2.length; i++) {
		System.out.println("array["+i+"] = " + array2[i]);
		}
	}
}

 

결과

array[0] = 10
array[1] = 30
array[2] = 50

6. for - each

배열이나 나열의 언소를 순차 접근하는데 유용한 for 문

for(변수 : 배열 레퍼런스){
	for문 내용
}

for - each 문으로 정수 배열의 합을 구하는 예시 

int [] n = {1,2,3,4,5};
int sum = 0;
for(int k : n) {
	sum += k;
}

적용 

import java.util.Arrays;
import java.util.Scanner;
public class Hello{
public static void main(String[] args) {
	int[] n = {1,2,3,4,5};
	int sum =0;
	for(int k : n) {
		System.out.print(k + " ");
		sum  += k;
	}
	System.out.println("합은 "  + sum);
	String f[] = {"사과 ", "배", "바나나", "체리", "딸기", "포도"};
	for(String s: f) {
		System.out.print(s + " ");
		}
	}
}

결과 

1 2 3 4 5 합은 15
사과  배 바나나 체리 딸기 포도 

 

 

 

반응형

'JAVA > 문법' 카테고리의 다른 글

[JAVA] 클래스  (0) 2019.12.22
[JAVA] 배열 2  (0) 2019.12.15
[JAVA] loop  (0) 2019.12.08
[JAVA] random(랜덤) 함수  (0) 2019.12.08
[JAVA] Exception in thread "main" java.lang.ArithmeticException: 자바 예외처리  (0) 2019.12.07

+ Recent posts