본문 바로가기
[ JAVA ]/JAVA

[ Java ] 배열 ( ArrayList )

by 환이s 2022. 12. 13.
CHAPTER 10. Array List 알아가기

오늘은 이전 포스팅에 이어서 배열에 대해 좀 더 깊게 알아보고 ArrayList 포스팅을 하려고 합니다. 

 

4 ) 배열의 복사

 

Ex) private static void ex5() {

int[] arr1 = {10, 20, 30, 40, 50}
int[] arr2 = {1, 2, 3, 4, 5}
System.arraycopy(arr1, 0, arr2, 2, 3);


for( int i : arr2 ) {
     System.out.println(i);
}

현재 for each문으로 i값을 arr2 값을 넣으려고 한다. 예시와 같이 출력을 하면 arr1의 {10,20,30,40,50} 의 순서는 0,1,2,3,4로 arr1번의 0번째부터 값을 가져오는데 arr2번의 2,3번부터 대입을 하려고 한다.  그렇다면 arr2의 {1,2,3,4,5}의 2번 자리에 위치한 3부터 arr1의 값을 가져온다.

 

 

5 ) 다차원 배열

 

- 배열의 논리적 메모리 구조가 2차원 이상의 형태를 보이는 배열을 가리켜 '다차원 배열'이라고 한다. 즉 2차원 배열도 다차원 배열이고,

3차원 배열도 다차원 배열이다.

 

그러나 일반적인 프로그램에서는 2차원을 초과하는 구조의 배열을 잘 이용하지 않는다. 따라서 설명의 초점을 2차원 배열에 두고자 한다.

 

5-1 ) 2차원 배열의 생성 및 접근

 

# 2차원 배열

int[][] arr = new int[2][3] // 2행 3열이라는 뜻
        for(int i = 0; i < arr.Length; i++) {
               for(int j = 0; j< arr[i].Length; j++) {
                         arr[i][j] = i+j;
}
}

for( int i = 0; i < arr.Length; i++) {
    for(int j=0; j < arr[i].Length; j++) {
      System.out.println ( i + "," + j + " = " + arr[i][j]);
}
}

 

예제와 같이 출력을 하면 arr의 행과 열의 Length 값을 대입하여 값이 나온다.

 

 

5-2 ) 영어 대문자, 소문자 출력하기

 

문제 예시를 보면 비전공자 분들은 조금 어려울 수 있지만 대문자와 소문자를 출력하실 때 ASCII 코드 참고하셔서 하시면 됩니다.

 

 

6 ) ArrayList 

 

- 객체 배열을 좀 더 효율적으로 관리하기 위한 클래스

- Collection 프레임워크의 일부이며 java.util 패키지에 소속되어 있다. 

- 추가, 삭제가 가능한 Array

 

# 구문

ArrayList<String>  nams = new ArrayList<String> ();
ArrayList< Score> scores = new ArrayList<Score> ();
List<Score> scores =  new ArrayList<Score>();
List<Score> scores = new ArrayList<score>(10);  // 10개를 만든다.  (List)는 부모타입이다.

 

7 ) ArrayList Method

 

1.  add()  :  값 추가 

-add()의 사용법에는 두 가지가 있다.

-add(Object) : ArrayList의 마지막에 데이터를 추가한다.

-add(int index , Object) : ArrayList의 index에 데이터를 추가한다.

 

 

2. set() : 값 변경

- set()을 사용 하기 위해서는 바꾸려는 데이터의 위치 Index를 알아야 변경이 가능하다.

- set(int index , Object)를 사용한다

 

3. remove() , clear() : 값 삭제

- clear()는 ArrayList의 모든 값을 삭제할 때 사용한다.

-remove()는 값을 하나씩 제거할 때 사용하고, 두 개의 사용법이 있다.

 

remove(Object) : Object를 파라미터로 넘기는 경우 해당 ArrayList의 Object와 같은 값을 삭제한다.

같은 값이 두 개인 경우 첫 번째 같은 값을 제거한다.

remove(int index) : ArrayList의 index에 해당하는 값을 삭제한다.

 

 

4.  size() : 크기 구하기

- ArrayList의 크기 구현은 size() 메서드를 사용하여 구할 수 있다.

 

5. get() : 값 출력하기

-ArrayList의 결과를 출력하는 방법에는 get(int Index)메서드가 있다.

-Index를 입력하면 해당 Index의 데이터가 출력된다.

-전부 출력하고 싶다면 for문과 향상된 for문을 사용하여 출력할 수 있다.

 

 

6. contains() , indexOf() : 값 검색하기

-값을 검색하는 방법은 contains() , indexOf() 두 가지 방법이 있지만 , 두 개가 비슷하지만 용도가 약간 다르다.

- contains()는 값이 있는지 여부만 파악

-indexOf()은 값의 위치 Index를 찾아주고 값이 없다면 -1을 출력한다.

 


마치며

 

오늘까지 배열에 대한 포스팅을 마무리하고 다음 포스팅은 상속과 다형성에 대한 글을 작성하겠습니다. 

728x90

'[ JAVA ] > JAVA' 카테고리의 다른 글

[ Java ] 추상 클래스  (0) 2022.12.15
[ Java ] 상속과 다형성  (0) 2022.12.14
[ Java ] 배열  (0) 2022.12.04
[ Java ] 클래스와 객체2  (0) 2022.11.30
[ Java ] 클래스와 객체1  (0) 2022.11.25