David의 개발 이야기!

배열 기초 1 본문

자바 정리

배열 기초 1

david.kim2028 2022. 5. 3. 00:58
반응형

1. 배열의 용도와 배열을 선언하는 방법에 대해서 작성해보시오 

int[] = sales_table = new int[100];
int sales_table[] = new int[100];
int[] sales_table;
	sales_table = new int[100];

 

[1] 배열이란? 

자동차 판매회사에서 영업사원의 판매사원의 판매실적을 저장한다고 할때 배열이 없으면 변수를 사용하여 저장할 것이다.

영업사원이 10정도라면 모르겠지만, 100명이 넘는 다면 변수를 일일이 선언하고, 영업사원의 판매실적을 저장하는 것이 상당히 번거롭다.

 

그러나, 배열을 이용하면, 일일이 변수를 선언할 필요 없이, 한방에 선언이 되고, 초기화값도 한방에 세팅해준다. 

 

즉, 배열은 동일한, 데이터 타입의 값들을 하나의 배열명으로 저장시킬 수 있는 아주 편리한 자료 구조이다

( 파이썬은 서로 다른 데이터 타입 값도 가능!! 차이점 알아두자! ) 

 

 

[2] 배열의 선언

데이터 타입[] 배열명 = new 데이터타입[배열크기];

데이터 타입 배열명[] = new 데이터타입[배열크기];

 

[3] 배열의 선언 --> 배열 크기 지정 --> 배열 공간의 값은 자동으로 초기화 세팅됨(정수형 : 0, 실수형 0.0)

 

[4] 자동차 판매회사의 영업사원 100명에 대한 배열 선언 및 크기 지정 --> 2가지 방식 

public class Java100_array{
	public static void main(String[] args){
    
    //[4-1] : 첫번째 방식 
    int sales_table[] = new int[100]; // 크기 지정
    
    //[4-2] : 두번째 방식 
    double[] sales_table2;
    sales_table2 = new double[100];
    
    //선언한 배열 사용하기 
    System.out.println(sales_table[0]);   //0 나옴(정수)
    System.out.println(sales_table2[99]);  //0.0 나옴 초기화값은 전부 0으로 초기화되기 때문!(실수)
    
    }
}

 

2.

배열과 인덱스의 관계에 대해서 설명하고 배열의 초깃값은 어떻게 세팅 되는지 설명하시오

크기 10의  정수형 배열을 생성하고, 인덱스로 배열공간의 값을 출력해보시오 

 

[1] 배열 선언

int[] scores = new int[10];
int s_size = scores.length; // 크기 값을 할당함
System.out.println(s_size); // 10

- 크기 10의 정수형 배열을 선언하고 크기 10을 지정하면, 메모리상에는 10개의 정수형 값을 담을 수 있는 공간이 생성된다.
- 배열 변수는 참조형 타입으로써, 해당 메모리 공간을 가르키게 된다. --> 해당 메모리 공간의 주소 값을 가진다.

    --> 이 주소 값을 통해서 참조한다. 

- 주소 값은 다른 표현으로는 참조값이라고도 부른다. 

- 공간이 10개 만들어지면, 동시에 자동적으로 해당 공간에 접근할 수 있는 인덱스 번호가 자동 부여된다. -> 인덱스는 0부터 시작

- 따라서, 크기가 10인 배열 공간의 첫번째 인덱스는 0이고, 마지막 공간의 인덱스는 9가 된다. --> 마지막 인덱스는 "배열의 크기-1"

- 인덱스 사용 --> 배열명[인덱스번호]

 

[2] 선언한 배열 공간의 값을 인덱스로 출력하기

System.out.println( scores[0]); // 0
System.out.println( scores[9]); // 0
System.out.println( scores[10]); // Err
System.out.println( scores[s_size-1]); // 0
System.out.println( scores[-1]); // Err 파이썬처럼 되지는 않음

 

3.  배열 요소에 데이터 값을 넣으려면 어떻게 해야하는지 작성해보시오

// [1] 배열선언 
int[] sales_table = new int[5];

// [2] 선언한 배열공간에 값 입력하기
sales_table[0]=3;
sales_table[1]=11;
sales_table[2]=22;
sales_table[3]=33;
sales_table[4]=44;

// [3] 값 출력하기
System.out.println(sales_table[0]); // 3
System.out.println(sales_table[sales_table.length-1]); // 44

 

4. 크기 5의 정수형 배열을 선언하고, 55, 88, 60, 100, 90 으로 각 요소의 값을 초기화 하시오 

// [1]
int[] sales_table = {55, 88, 60, 60, 100, 90 };

// [2]
int[] sales_table2 = new int[] {55, 88, 60, 60, 100, 90 }

// 잘못된 예시
int[] sales_table3;
sales_table3 ={ 55, 88, 60, 60, 100, 90 }; //Err
// 위처럼 하면 안됨 위처럼 하려면, 

int[] sales_table3;
sales_table3 = new int[] { 55, 88, 60, 60, 100, 90 }; // 처럼 해야함.

 

 

5.  배열 요소의 값을 반복문을 사용하여 모두 출력하시오. 

// [1] 배열 선언과 동시에 특정 값으로 초기화
int[] sales_table = {22, 52, 93, 100, 87};

// [2] 반복문을 사용하여 모든 값 출력
for(int i=0; i<sales_table.length; i++) {
	System.out.print(sales_table[i]+"");   
}
System.out.println();

 

6. 크기 5의 정수형과 실수형 배열을 생성하고, 각각의 주소 값을 출력해보세요

- 주소값은 다른 말로 참조 값이라고도 한다.

- 이 문제는 배열변수에 들어있는 값이 참조형 타입인지에 대해서 알고 있는지를 묻는 문제이다. 

 

// [1] 정수형과 실수형 배열 변수 선언
int[] ar = {3,3,3,3,4}
double[] ar2 = {9.8, 2.45, 5.98, 5.11, 3.14}

// [2] 마지막 배열 요소값 출력 
System.out.println(ar[ar.length-1]); // 4
System.out.println(ar2[ar.length-1]); // 3.14

// [3] 배열명 자체를 찍어서 출력 --> 주소(참조)값 출력 -->I : 정수형 배열, D: 실수형 배열을 각각 의미함
System.out.println(ar); // 정수형 배열 --> I로 시작
System.out.println(ar2); // 실수형 배열 --> D로 시작

 

7. 배열의 값들을 for 문과 같은 반복문을 사용하지 않고, 한꺼번에 출력하는 코드를 작성하시오 

- 이 문제는 반복문이 아닌, 메서도로 배열의 요소 값들을 출력하는 방법에 대해 아는지를 묻는 문제이다. 

 

// [!] : Arrays.toString() 메서도 

// 반복문을 사용하지 않고 배열의 값을 출력하고자 한다면, Arrays 클래스의 toString()메서드를 사용하면 된다. 

// toString() 인자로는 배열명을 넣어주면 된다.

// 사용을 위해서는 기본적으로 java.util.Arrays 임포트 선언이 되어져 있어야한다. -> ; 빼먹지 않도록 주의!

 

// [1]
int[] ar = {238, 483, 239, 442, 487, 239, 873}

// [2]
System.out.println(Arrays.toString(ar)); // 괄효의 형태로 배열 표시를 보여주면서 출력됨

// [238, 483, 239, 442, 487, 239, 873]

 

8. 다중배열의 선언으로 맞는 것을 고르시오

- 이 문제는 배열 선언을 여러개 해야하는 경우, 한줄에 모두 선언하고 만들 수 있는지를 묻는 문제이다. 

// [1] OK 
int[] a b c;

// [2] OK 
int d[], e[], f[];

// [3] WRONG  g 만 배열이 됌.
int g[], h, i;

// 배열이 사용 가능한지 체크
a = new int[3];
b = new int[3];
c = new int[3];
System.out.println(Arrays.toString(a)); // [ 0, 0 ,0 ] 
System.out.println(Arrays.toString(b)); // [ 0, 0 ,0 ] 
System.out.println(Arrays.toString(c)); // [ 0, 0 ,0 ]

 

9. 배열을 복사하는 메서드를 말해보고 관련된 코드를 구현해보시오

- 이 문제는 배열 복사시 사용하는 메서드 명과 사용법에 대해서 알고 있는지를 묻는 문제이다. 

 

[ 결과 출력 ]

[1, 2, 3, 4, 5 ]

[1, 2, 3, 4, 5, 6, 7, 8 ] 

 

[!] : 배열 복사하기 
arraycopy() 메서드 사용 --> 사용법 --> System.arrarycopy(원본배열명, ???, 복사배열명, ???, 길이);

-> 덮어쓰기가 된다!!                                                                                         ???-> 인덱스(어디서부터)  

 

// [1] 배열 선언 
int[] ar= {1,2,3,4,5};
int[] ar2 = {1,2,3,4,5,6,7,8,9,10};

// [2] 뱌열 복사하기 -> System.arraycopy()
System.arraycopy(ar, 2, ar2,4,3); // [1,2,3,4,3,4,5,8,9,10]

System.out.println(Arrays.toString(ar2))

 

 

 

반응형

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

배열 기초2  (0) 2022.05.03
Comments