반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 테이블
- string
- 배열
- CSS
- IntelliJ
- Button
- windows
- 이클립스
- json
- table
- javascript
- js
- Eclipse
- Array
- 자바
- list
- CMD
- html
- Maven
- input
- Visual Studio Code
- 인텔리제이
- 자바스크립트
- ArrayList
- vscode
- 이탈리아
- date
- 문자열
- Java
- Files
Archives
- Today
- Total
어제 오늘 내일
[Java] 배열 길이 늘리기 본문
Java에서 한번 선언된 배열의 길이를 늘리는 것은 불가능합니다.
따라서, 만약 배열의 길이를 늘려서, 원소를 추가해야 한다면
기존의 배열 대신, 새로운 배열을 새로 생성하고(원하는 길이만큼)
기존 배열의 값들을 새로운 배열로 복사해 주어야 합니다.
- 반복문
- Arrays.copyOf()
- ArrayList
1. 반복문
코드
import java.util.Arrays;
public class ArrayLength {
public static void main(String[] args) {
String[] arr = { "A", "B", "C" };
int arrLength = arr.length;
// 기존 배열을 새로운 배열로 복사(길이를 늘려줌)
String[] newArr = new String[arrLength + 1];
for (int i = 0; i < arrLength; i++) {
newArr[i] = arr[i];
}
// 새로 늘어난 index에 값 추가
newArr[arrLength] = "D";
// 결과 출력
System.out.println("기존 배열 : " + Arrays.toString(arr));
System.out.println("새로운 배열 : " + Arrays.toString(newArr));
}
}
결과
기존 배열 : [A, B, C]
새로운 배열 : [A, B, C, D]
반복문을 사용하여,
기존 배열(arr)을 새로운 배열(newArr)로 복사하고,
(newArr의 길이는, 늘리고 싶은 길이로 설정해 줍니다)
newArr의 새로 늘어난 index에 새로운 값을 추가해 주었습니다.
2. Arrays.copyOf()
public static <T> T[] copyOf(T[] original, int newLength)
Arrays.copyOf() 메소드는
파라미터로 받은 original 배열을 복사해서, 새로운 배열을 만들어서 리턴합니다.
이 때, 리턴 되는 새로운 배열의 길이는, 2번째 파라미터(newLength)로 지정해 줄 수 있습니다.
코드
import java.util.Arrays;
public class ArrayLength {
public static void main(String[] args) {
String[] arr = { "A", "B", "C" };
int arrLength = arr.length;
// 기존 배열을 새로운 배열로 복사(길이를 늘려줌)
String[] newArr = Arrays.copyOf(arr, arrLength + 1);
// 새로 늘어난 index에 값 추가
newArr[arrLength] = "D";
// 결과 출력
System.out.println("기존 배열 : " + Arrays.toString(arr));
System.out.println("새로운 배열 : " + Arrays.toString(newArr));
}
}
결과
기존 배열 : [A, B, C]
새로운 배열 : [A, B, C, D]
Arrays.copyOf() 메소드를 이용하여
새로운 배열의 길이를 지정하고, 기존 배열을 복사하였습니다.
3. ArrayList
List는 가변적으로 길이를 늘릴수 있습니다.
이런 점을 이용하여, 배열의 길이를 늘릴수 있습니다.
List가 중간에 매개체가 되어, 배열의 길이를 늘리는 방법입니다.
코드
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ArrayLength {
public static void main(String[] args) {
String[] arr = { "A", "B", "C" };
// 기존 배열을 List로 변환
List<String> list = new ArrayList<>(Arrays.asList(arr));
// List에 값 추가
list.add("D");
// List를 배열로 변환
String[] newArr = list.toArray(new String[0]);
// 결과 출력
System.out.println("기존 배열 : " + Arrays.toString(arr));
System.out.println("새로운 배열 : " + Arrays.toString(newArr));
}
}
결과
기존 배열 : [A, B, C]
새로운 배열 : [A, B, C, D]
1. 배열을 List로 변환합니다.
2. List에 값을 추가하여, 길이를 늘려줍니다.
3. List를 다시 배열로 변환합니다.
[Java] 배열을 List로, List를 배열로 변환하기
배열의 길이를 늘리는 방법을 알아보았습니다.
반응형
'IT > Java' 카테고리의 다른 글
[Java] List 중복제거 하면서 합치기 (0) | 2021.05.06 |
---|---|
[Java] List 2개 합치기 (0) | 2021.05.05 |
[Java] List에서 null 삭제하기 (0) | 2021.05.05 |
[Java] 대소문자 구분없이 문자열 비교하기 (0) | 2021.05.04 |
[Java] List에 특정 값이 포함되어 있는지 확인하기 (1) | 2021.05.04 |
Comments