배열 의 정의, 복제, 최대값 구하기

2019. 5. 16. 17:26컴퓨터공학기초 및 이론/자료구조&알고리즘

 

같은 자료형의 변수로 이루어진 구성요소가 모인 것

 

예제:

class IntArray {
	
	public static void main(String[] args) {
		int[] a = new int[5]; //배열의 선언 - int 자료형으로 5칸의 배열
		
		a[0] = 11;			  // 0 번째 배열칸에 11 저장
		a[1] = 23;
		a[2] = 40;
		a[3] = a[2] * 2;	  // 3번째(인덱스2) 배열 값 곱하기 2 를 4번째 배열칸(인덱스3)에 저장
		a[4] = a[0] + a[1];   // int형이므로 배열 속 값 간의 연산 가능, 덧셈 결과를 5번째(인덱스4) 배열칸에 저장
		
		//반복문을 통해 배열의 결과값을 나열, length는 배열의 길이를 나타냄, i는 인덱스
		for (int i=0; i < a.length; i++){
			System.out.println("a[" + i + "] = " +a[i] );
		}
	}
	
}

 

배열은 new를 통해 참조할 수 있다

int[] a;

a = new int[5];

배열은 복제가 가능하다.

class CloneArray {

	public static void main(String[] args) {
		
		int[] a = {1,2,3,4,5}; 		//a라는 이름으로 다섯칸의 배열을 선언하고 값을 넣는다
		int[] b = a.clone();		//b는 a의 복제를 참조한다
		
		b[3] = 0;					//한 요소에만 0을 대입
		
		//반복문으로 a 배열의 내용을 확인한다
		System.out.print("a =");
		for(int i = 0; i < a.length; i++){
			System.out.print(" " + a[i]);
		}
		
		//반복문으로 b 배열의 내용을 확인한다 
		//4번째 값은 복제 후 새로 0을 대입했기 때문에  a배열과 차이가 있다
		System.out.print("\nb =");
		for(int i = 0; i < b.length; i++){
			System.out.print(" " + b[i]);
		}
		
	}
}

 

배열에서 최대 값 구하기

 

import java.util.Scanner;

class MaxOfArray {

	static int maxOf(int[] a){
		//max의 값에 첫 인덱스의 값을 넣고 반복문을 돌리면서 크기를 비교하여 큰 값이 나오면 max 변수의 값을 바꿔준다.
		int max = a[0];
		
		for(int i = 1; i < a.length; i++){
			if(a[i] > max)
			max = a[i];	
		}
		
		return max;			
	}
	
	public static void main(String[] args) {
		
		Scanner stdIn = new Scanner(System.in);
		
		System.out.println("배열의 최대값을 구한다");
		System.out.print("배열 크기 입력:");
		
		int size = stdIn.nextInt();			//배열의 사이즈를 입력
		
		int[] list = new int[size];			//size 크기의 배열을 생성
		
		
		for(int i = 0; i < size; i ++){
			System.out.print("list["+i+"] 번째 값 :");		//배열에 값을 넣는다
			list[i] = stdIn.nextInt();
		}
		
		System.out.println("최대값은 "+maxOf(list)+ "입니다."); //maxOf 메소드를 참조하여 최대값을 보여준다
		
	}
}