카테고리 없음

Array 실습 첫번째

달덩이>< 2022. 9. 27. 22:49

1. Array 실습 1

package p01.basic;

// 1. 배열 (array) : 특정 type의 원소가 연속적으로 메모리에 할당된 data type을 의미
// 2. int[] arr =>
//  1) int[] : 배열 type (배열 원소의 data type이 int인 array)
//  2) arr => 변수 이름
// 3. {10, 60, 30, 40} => 배열 초기값, 각각의 데이터를 배열 원소의 데이터값으로 설정한다는 의미
// 4. arr[index] => index가 0인 경우는 첫번째 배열 원소, 1인 경우는 두번째 배열 원소,....


public class ArrayBasic {

	public static void main(String[] args) {
		// 1. 배열 선언하면서 초기값 {} 사용 방법
		int[] arr = {10, 60, 30, 40};
		
		System.out.println("arr 첫번째 원소 : " + arr[0]);
		System.out.println("arr 두번째 원소 : " + arr[1]);
		System.out.println("arr 세번째 원소 : " + arr[2]);
		System.out.println("arr 네번째 원소 : " + arr[3]);
		System.out.println("arr 전체 배열원소 갯수 : " + arr.length);
		
		int[] arr1 = {50, 30, 70, 90};
		
		System.out.println("arr1 첫번째 원소 : " + arr1[0]);
		System.out.println("arr1 두번째 원소 : " + arr1[1]);
		System.out.println("arr1 세번째 원소 : " + arr1[2]);
		System.out.println("arr1 네번째 원소 : " + arr1[3]);
		System.out.println("arr1 전체 배열원소 갯수 : " + arr1.length);
		
		double[] arr2 = {1.2, 2, 3, 4};
		
		System.out.println("arr2 첫번째 원소 : " + arr2[0]);
		System.out.println("arr2 두번째 원소 : " + arr2[1]);
		System.out.println("arr2 세번째 원소 : " + arr2[2]);
		System.out.println("arr2 네번째 원소 : " + arr2[3]);
		System.out.println("arr2 전체 배열원소 갯수 : " + arr2.length);
		
		// 2. 배열만 선언하고 나중에 초기값 넣는 방법
		int[] arr3;
		// nwe + data type (배열 타입인 경우는 예를 들면 int[])
		arr3 = new int[] {5,6,7,8,0};
		System.out.println("arr3 첫번째 원소 : " + arr3[0]);
		System.out.println("arr3 두번째 원소 : " + arr3[1]);
		System.out.println("arr3 세번째 원소 : " + arr3[2]);
		System.out.println("arr3 네번째 원소 : " + arr3[3]);
		System.out.println("arr3 다섯번째 원소 : " + arr3[4]);
		System.out.println("arr3 전체 배열원소 갯수 : " + arr3.length);

//		ArrayBasic ab = new ArrayBasic();
		
		
		// 3. 배열 원소의 값이 없는 배열 크기만 생성
		int[] arr4 = new int[4];  // 4개 원소를 가진 배열을 메모리에 생성해달라는 의미
		arr4[0] = 10;
		arr4[1] = 20;
		arr4[2] = 30;
		arr4[3] = 40;
		System.out.println("arr4 전체 배열원소 갯수 : " + arr4.length);
		
		int[] intArray;
		intArray = new int[10];
		intArray[4] = 10;
//		intArray.length =20;
	}

}

 

  • 배열(Array)란?
  • => 특정 type의 원소가 연속적으로 메모리에 할당된 data type을 의미합니다.
  • 먼저 배열을 선언하면서 초기값 { } 사용해줍니다. => int[ ] arr = {10, 60, 30, 40};
  • 첫번째 배열에 있는 원소를 출력하고 싶으면 println( arr[0]);을 해주면 첫번째에 있는 원소 10이 출력하게 됩니다.
  • 두번째 배열에 있는 60을 출력하기 위해서는 println( arr[1]);을 해주면 됩니다.
  • 마지막으로 배열의 전체원 갯수를 알고 싶으면 println(arr.length);를 해주면 원소의 갯수를 알 수 있습니다. 

위 사진은 위 코딩의 결과를 Console 창에 나타낸 것이다.



2. 배열에 for 문 사용하기

package p01.basic;

// 배열을 for문에 사용방법
public class ArrayBasic2 {

	public static void main(String[] args) {
		int sum = 0;
		int[] arr = {10,20,30,40,50,60};
		double[] arr2 = {1.0, 2.0, 3.0, 4.0};
		
		for (int i=0; i<arr.length; i++) {
			sum += arr[i];
			System.out.println("arr[" + i +"] : " + arr[i] );
		}
		
		for (int i=0; i<arr2.length; i++) {
			System.out.println("arr2[" + i +"] : " + arr2[i] );
			
	}
		
		System.out.println();
		
		// 향상된 for문 (배열 등 여러개의 원소를 가진 type에서 사용 가능)
		// arr 배열에서 첫번째 원소부터 마지막 원소의 값을 차례로 element에 넣어줌
		
		for (int element : arr) {
			System.out.println(element);
		}
		
		for (double element : arr2) {
			System.out.println(element);
			
			
		}
	}
}

 

  • 배열에서 for 문을 사용하면 배열의 전체를 순차적으로 쉽게 출력할 수 있습니다.
  • for 문 사용방법은 평소에 for 문을 사용하는 것처럼 사용해주면 됩니다. 그리고 향상된 for 문이라는 것도 존재하는데 이 향상된 for 문의 사용 방법은
  •  => for (int elemet : arr ) {  System.out.println(element) } 처럼 사용해주면 됩니다.

위 사진은 위 코딩의 결과를 Console 창에 나타낸 것이다.


 


3. console에서 배열의 크기를 입력하고 각 배열의 원소값을 입력하여 읽어오기

package p01.basic;

import java.util.Scanner;

//console에서 배열크기와 각 배열 원소의 값을 읽어 오기

public class ArrayBasic3 {

	public static void main(String[] args) {
		double[] myList;
		
		Scanner input = new Scanner(System.in);
		System.out.println("배열 전체 크기를 입력하세요.");
		int arrayLength = input.nextInt();
		
		myList = new double[arrayLength];
		
		for (int i=0; i<myList.length; i++) {
			System.out.println((i+1) + "번째 원소를 입력하세요.");
			myList[i] = input.nextDouble();
			
		}
		
		for (int i=0; i<myList.length; i++) {
			System.out.println("myList[" + i + "] : " +myList[i]);
		

	}

}
}

 

  • 먼저 myList라는 배열을 생성해줍니다.
  • 그리고 우리가 직접 입력을 해줘야해서 scanner를 사용해줍니다.
  • 그 다음으로는 for 문을 사용하여 myList에 있는 원소들을 순차적으로 입력할 수 있는 코드를 만들어줍니다.
  • 한 번더 for문을 써서 첫번째 for 문에 입력된 원소들을 출력하게 만들어줍니다.

위 사진은 위 코딩의 결과를 Console 창에 나타낸 것이다. (배열의 크기를 3으로 입력하고&nbsp; 3개의 원소는 제가 직접한 2,4,5 입니다. 그래서 myList배열에 2,4,5가 순차적으로 출력된 모습입니다.)


 


4. 배열 원소의 초기값을 0에서 100이내의 실수 값을 random으로 출력하기

package p01.basic;

// 배열 원소의 초기값을 0~100이내의 실수 값으로 random하게 주는 프로그램
public class ArrayBasic4 {

	public static void main(String[] args) {
		double[] myList = new double[10];
		
		for (int i=0; i<myList.length; i++) {
			myList[i] = Math.random()*100;
		}
		
		for (double element : myList) {
			System.out.println(element);
		}

	}

}

 

  • 먼저 실수 값을 가져야 하므로 double[] myList를 만들어 줍니다.
  • 그 다음  for 문을 사용하여 순차적으로 출력하되 random의 값을 가져야하므로 Math.random을 사용해줍니다.
  • 그리고 한번 더 for 문을 사용하여 10개의 random의 실수 값을 출력해줍니다.

위 사진은 위 코딩의 결과를 Console 창에 나타낸 것이다.



5. String과 char[]의 비교

package p01.basic;

// String과 char[]는 data type이 틀림
// 참고로, C language는 String이라는 data type이 없음

public class ArrayBasic5 {

	public static void main(String[] args) {
		String city1 = "Dallas";
		char[] city = {'D', 'a', 'l', 'l', 'a', 's'};
		
		for (char element : city) {
			System.out.println(element);
		}
		
		System.out.println(city);
		System.out.println(city1);
		
	}

}

 

  • String과 char[]의 data type은 다릅니다.
  • 먼저 Sytem.out.println(element);는 한글자 한글자씩 출력될 것이고, System.out.println(city);와 Sytem.out.println(city1);은 문장 전체가 출력될 것입니다.

위 사진은 위 코딩의 결과를 Console 창에 나타낸 것이다.



오늘은 Array(배열)에 관한 실습을 해보았습니다. 배열 같은 경우는 어떤 결과를 산출하거나 할때 유용하게 쓰입니다. 다음시간에도 배열에 대한 실습을 이어서 할 예정입니다. 감사합니다^^

반응형