기초 JAVA 6강 - 배열

배열

  • 여러 개의 값을 하나의 변수에 저장해서 사용하는 것이다.
  • 참조형 타입이다.
  • 인덱스로 값을 구분한다.
  • 길이를 변경할 수 없다.

데이터 중의 하나,
데이터 타입 뒤에 []를 붙여서 사용.

int[] array; // 배열의 주소를 저장할 공간이 만들어진다.

  • 배열 초기화방법 1)
    array = new int[5]; // 배열이 생성되고 그 주소가 저장된다. - int[5] : 5개의 int를 저장할 주소가 변수 안에 저장됨.
    array(변수) = 100번지(주소)
    100번지 = 첫번째 저장된 값의 주소
    (0,0,0,0,0)
    => 길이만 저장됨.

  • 초기화방법 2)
    array = new int[]{1, 2, 3, 4, 5}
    => 길이와 값까지 저장됨.

  • 초기화방법 3)
    int[] array = {1, 2, 3, 4, 5};
    => 선언과 초기화를 동시에 해야함.

System.out.println(array);
=> 출력되는 값 = 배열의 주소

인덱스 - 변수 뒤의 대괄호[]안에 숫자를 붙이면 됨, 배열 안에 들어가 있는 순서이며 0부터 시작함.
System.out.println(array[0]);
=> 출력되는 값 = 배열 array의 0번째 위치한 값을 출력.

한 줄 복사 단축키 : Ctrl + Alt + 방향키(위/아래)

array.length;이 배열의 크기가 몇 인지 알 수 있는 메서드.

for(int i = 0; i < array.length; i++){
array[i] = (i + 1) * 10;
System.out.println(array[i]);
}

Q1) 10개의 정수를 저장할 수 있는 배열을 선언 및 초기화 해주세요.

int[] array = new int[10];

Q2) 배열의 모든 인덱스에 1 ~ 100 사이의 랜덤한 값을 저장해주세요.

for(int i = 0; i < array.length; i++){
array[i] = (int)(Math.random() * 100) + 1
}

** Arrays.toString(a) : 배열에 있는 모든 값을 문자열로 만들어서 돌려주는 메서드
() 안에 들어가는 것이 반드시 배열이어야 함.

Q3) 배열에 저장된 모든 값의 합계와 평균을 출력해주세요.

int sum = 0;

for(int i = 0; i < a.length; i++){
sum += a[i];
}
double avg = (double)sum / a.length;
System.out.println("합계 : " + sum + " 평균 : " + avg);

Q4) 배열에 저장된 값들 중 최소값과 최대값을 출력해주세요.

int min = a[0], max = a[0];
int temp = 0;

for(int i = 0; i < a.length; i++){

temp = a[i];

if(temp < min) min = temp;
if(temp > max) max = temp;
}
System.out.println("최소값 : " + min + " /최대값 : " + max);

Q5) 배열의 값을 섞어주세요.

int[] shuffle = new int[10];
for(int i = 0; i < shuffle.length; i++){
shuffle[i] = i + 1;
}
System.out.println(Arrays.toString(shuffle));

for(int i = 0; i < shuffle.length 10; i++){
int random = (int)(Math.random()
shuffle.length);

int b = shuffle[0];
shuffle[0] = shuffle[random];
shuffle[random] = b; }

System.out.println(Arrays.toString(shuffle));

오늘의 과제 : 1 ~ 10 사이의 랜덤값을 500번 생성하고, 각 숫자가 생성된 횟수를 출력해주세요.
1이 몇 번 발생되었는지, 2가 몇 번 발생되었는지 횟수를 카운트해서 출력

나의 답 )

    int n1 = 0, n2= 0, n3= 0, n4= 0, n5= 0, n6= 0, n7= 0, n8= 0, n9= 0, n10= 0;
	int[] array = new int[500];
	
	for(int i = 0; i < array.length; i++){
	  array[i] = (int)(Math.random() * 10)+ 1;	
	  if(array[i] == 1) n1++;
	  if(array[i] == 2) n2++;
	  if(array[i] == 3) n3++;
	  if(array[i] == 4) n4++;
	  if(array[i] == 5) n5++;
	  if(array[i] == 6) n6++;
	  if(array[i] == 7) n7++;
	  if(array[i] == 8) n8++;
	  if(array[i] == 9) n9++;
	  if(array[i] == 10) n10++;
	}
	System.out.println("1 :" + n1 + "번/ 2 :" + n2 +"번/ 3 :"+ n3 +"번/ 4 : "+ n4 +"번/ 5 :"+ n5 +"번/ 6 :"+ n6 +"번/ 7 :"+ n7 +"번/ 8 :"+ n8 +"번/ 9 :"+ n9 +"번/ 10 :"+ n10 + "번"); 
	 
	System.out.println(n1+n2+n3+n4+n5+n6+n7+n8+n9+n10);

두번째 답

	int[] array = new int[500];
	int[] b = new int[10];
	int[] c = new int[10];
	
	for(int i = 0; i < b.length; i++){ //b = {1,2,3,4,5,6,7,8,9,10}
		b[i] = i + 1;
	}
	
	for(int i = 0; i < array.length; i++){
		array[i] = (int)(Math.random() * b.length)+ 1;	
		
		for(int j = 0; j < b.length; j++){
		  if(array[i] == b[j]) c[j] += 1; 
	 
	}}
	System.out.println(Arrays.toString(c)); 
	

선생님 답

	int[] counts = new int[10]; 
	
	for(int i = 0; i < 500; i++){
		int random1 = (int)(Math.random() * 10) + 1;
		
		counts[random1 - 1]++;
		
	}
	for(int i = 0; i < counts.length; i++){
		System.out.println(i + 1 +"의 발생횟수 : " + counts[i]);

좋은 웹페이지 즐겨찾기