반응형
자바에서 배열을 여러 배열을 합치는 방법은
Stream을 이용한 방법
System.arraycopy를 이용한 방법
list와 Collections을 이용한 방법이 있는데
차례대로 알아보자
먼저 Stream을 이용한 방법은
Stream.concat(Arrays.stream(배열명), Arrays.stream(배열명)).toArray(데이터타입::new);
를 사용해주면 되는데
스트림이 뭔가 어려워 보일 수 있지만
배열 두개를 concat 한 뒤 데이터타입의 배열로 보내주겠다
이런 내용이다
다음으로 System.arraycopy를 이용한 방법은
먼저 배열 두개의 크기를 합친 배열을 생성한 후
System.arraycopy(합칠_배열, 합칠_배열의_시작인덱스, 배열, 배열의_시작인덱스, 몇개_넣을지)
위와 같이 사용해주면 되는데
두 배열을 합칠 경우에는
첫 배열의 합칠_배열의_시작인덱스,
배열의_시작인덱스를 0으로 설정하고
다음 배열부터는 배열의_시작인덱스를
첫 배열의 크기로 잡아주면 된다
그럼 처음 배열이 들어간 다음에
새로운 배열의 값이 들어가는 식이 된다
마지막으로는 List, Collections을 이용한 방법인데
일단 List를 생성한 후
Collections.addAdd(리스트명, 배열명);
으로 리스트 안에 배열 값을 모두 넣어주고
list명.toArray(new 데이터타입[list명.size()]);
으로 list에서 다시 배열 타입으로 빼내주면 된다
마지막으로 예제에 사용한 코드는 아래와 같다
public class Test1 {
public static void main(String[] args) {
String[] word1 = {"A", "B"};
String[] word2 = {"C", "D"};
String[] result;
result = Stream.concat(Arrays.stream(word1), Arrays.stream(word2)).toArray(String[]::new);
Stream.of(word1, word2).flatMap(Arrays::stream).toArray(String[]::new); // Stream::of 도 가능
System.out.println("Stream을 이용한 배열 합치기 : "
+ Arrays.stream(result).collect(Collectors.toList()));
// System.arraycopy를 이용한 방법
// arraycopy(배열, 배열의_시작인덱스, 넣을_배열, 넣을_배열의 시작위치, 몇개 넣을지)
String[] result2 = new String[word1.length + word2.length];
System.arraycopy(word1, 0, result2, 0, word1.length);
System.arraycopy(word2, 0, result2, word1.length, word2.length);
System.out.println("System.arraycopy를 이용한 배열 합치기 : "
+ Arrays.stream(result2).collect(Collectors.toList()));
// Collections, List를 이용한 방법
List<String> list = new ArrayList<String>();
Collections.addAll(list, word1);
Collections.addAll(list, word2);
String[] result3 = list.toArray(new String[list.size()]);
System.out.println("Collections를 이용한 배열 합치기 : "
+ Arrays.stream(result3).collect(Collectors.toList()));
}
}
반응형
'Language > Java' 카테고리의 다른 글
자바 알파벳 char String 배열에 넣는 방법 (0) | 2020.12.15 |
---|---|
자바 배열 합계 계산방법 정리 (0) | 2020.12.15 |
자바 char를 String으로 String을 char로 변환방법 정리 (0) | 2020.12.09 |
자바 char 배열을 stream으로 변환방법 (0) | 2020.12.09 |
자바 배열 최대값 최소값 구하는 방법 (1) | 2020.12.07 |
댓글