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을 출력한다.
마치며
오늘까지 배열에 대한 포스팅을 마무리하고 다음 포스팅은 상속과 다형성에 대한 글을 작성하겠습니다.
'[ 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 |