본문 바로가기

자바 수업 정리

수업정리 4일차.

배열 Array

같은타입, 같은 의미를 가지는 변수들의 집합 (참조변수)

객체를 생성하는 키워드 : new

- 배열을 선언하는 방법

타입[] 배열이름;

타입 배열이름[];

 

- 선언하고 생성(new) 초기화하는 방법 : 객체를 생성하면 자동으로 초기화해줌.

타입[] 배열이름 = new 타입[길이];    - 가장많이 사용하는 방식

타입[] 배열이름 = new 타입[]{값,값,값,값}; 

타입[] 배열이름 = {값,값,값,값}; // 실무에서는 잘안쓰고 연습할 때 사용

 

배열의 길이는 0 이상이어야한다.

배열의 시작번지(index)는 0부터 시작.

배열의 길이는 length(총길이)를 이용하면 알 수 있음.

배열을 사용하는 이유
 - 관리가 편함.
 - 반복문을 사용 할 수 있기 때문에 많은 양의 데이터를 쉽게 관리

 

ex)

	public static void main(String[] args) {
		/* arr 배열의 합계와 평균을 출력
		 * 최대값, 최소값
		 * 합격자 수 출력( 점수가 70이상이면 합격)
		 * */
		int arr[] = new int[] {10,84,76,91,94,45,59,60,12,3,75,20,35};
		
		int sum = 0;
		int max = arr[0];
		int min = arr[0];
		int count = 0; // 합격자 수
		
		
		for(int i=0; i <arr.length; i++) {
			sum += arr[i];

			max = Math.max(max,arr[i]);
			min = Math.min(min,arr[i]);
			if(arr[i] >= 70) {
				count++;
			}
		}
		
		
		double avg = (double)sum / arr.length;
		System.out.println("배열의 합계:"+ sum);
		System.out.println("배열의 평균:"+ avg);
		System.out.println("최댓값:" + max + "최소값:"+ min);
		System.out.printf("총 인원수 %d명 중 %d명 합격%n" , arr.length,count);
				
		
	}

}

 

향상된 for문

for( 자료형 변수명 : 배열명){

       문장

}

배열을 사용할 순 있지만 절대 수정할 수는 없다.

 

배열복사

System.arraycopy(이전배열, 시작번지, 새배열, 시작번지, 개수)

배열은 처음 선언 때 정한 개수를 변경할 수 없음.

배열은 추가/삭제가 불가능.

배열의 값을 추가하려면 기존 배열을 버리고, 더큰 배열로 교체해야함.

 

ex)

public static void main(String[] args) {
		// System.arraycopy(이전배열, 시작번지, 새배열, 시작번지, 개수)
		int arr[] = new int[] {50,78,48,59,63};
		int arr1[] = new int[] {85,97,58};
		
		int arr2[] = new int[arr.length+arr1.length];
		
		System.arraycopy(arr, 0, arr2, 0, arr.length);
		
		System.arraycopy(arr1, 0, arr2, arr.length, arr1.length);
		
		for(int i : arr2) {
			System.out.print(i+" ");
			
		}
		System.out.println();			
		
	}

 

다차원배열

타입 [][] 배열이름 =  new 타입[행의수][열의수];

 

ex)

public static void main(String[] args) {
		/* 2차원 배열
		 * 10 20 30
		 * 40 50 60
		 * 70 80 90
		 * 100 110 120
		 * 130 140 150
		 * 자료형 배열명[][] new 자료향[5][3]  // 5행 , 3열
		 */	
		int arr[][] = new int[5][3];
		
		int cnt = 1;
		for(int i=0; i < arr.length; i++) { // 0~4 행 반복
			for(int j=0; j<arr[0].length; j++) { // 첫 행의 열.length
				arr[i][j] = cnt*10;
				cnt++;
				System.out.print(arr[i][j]+" ");
			}
			System.out.println(); // 줄바꿈
		}
	}

 

'자바 수업 정리' 카테고리의 다른 글

수업정리 6일차.  (2) 2024.07.22
수업정리 5일차.  (0) 2024.07.19
수업정리 3일차.  (1) 2024.07.17
수업정리 2일차.  (0) 2024.07.16
수업정리 1일차.  (0) 2024.07.15