자바에서 여러 배열을 병합

이 게시물에서,우리는 하나의 새로운 배열에 자바에서 여러 배열을 병합하는 방법에 대해 설명합니다. 새 배열은 개별 배열에서 요소의 원래 순서를 유지해야 합니다.우리는 자바 8 이상의 스트림을 사용하여 여러 배열을 병합 할 수 있습니다. 그렇게 할 수있는 다양한 방법이 있습니다–

2018 년 10 월 15 일.의()

정적 팩토리 메소드 스트림을 사용하여 모든 배열에서 모든 요소로 구성된 스트림을 얻을 수 있습니다.의(). 우리는 스트림이되면,우리는 플랫 맵을 사용하여 평평 할 수 있습니다()방법 다음 배열에 사용하여 배열로 다시 변환()방법.

1
2
3
4
5
6
7

// 자바(8)에서 위의 여러 배열을 병합하는 기능
공공 정적 문자열 병합(문자열…배열)
{
반환 스트림.(배열)
의.또는 배열의 사용::스트림
.문자열::새로 만들기);
}

⮚ 스트림.연결()

스트림에는 두 개의 스트림을 입력으로 사용하고 느리게 연결된 스트림을 생성하는 연결()메서드가 있습니다. 아래 그림과 같이 여러 배열을 병합하는 데 사용할 수 있습니다:

1
2
3
4
5
6
7
8
9

// 자바(8)에서 위의 여러 배열을 병합하는 기능
공공 정적 문자열 병합(문자열…배열)
{
스트림<문자열>스트림=스트림.();
(문자열:배열)
스트림=스트림.연결(스트림,배열.스트림(들));
리턴 스트림.문자열::새로운);
}

체계.배열을 사용하여 모든 배열에 존재하는 모든 요소를 수용하기 위해 새 배열에 충분한 메모리를 할당하는 것으로 시작합니다.복사(). 그런 다음 시스템을 사용합니다.아래 그림과 같이 주어진 배열을 새 배열로 복사하려면:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

// 자바
공공 정적 문자열 병합에서 여러 배열을 병합하는 기능(문자열… 배열)
{
문자열 배열에 대한 마지막 길이=0;
: 배열(
최종 길이+=배열.길이;
}
예를 들어,문자열 배열의 경우,배열의 경우,배열의 경우,배열의 경우,배열의 경우,배열의 경우,배열의 경우,배열의 경우,배열의 경우,배열의 경우,배열의 경우,배열의 경우,배열의 경우,배열의 경우,배열의 경우,배열의 경우,배열의 경우,배열의 경우,배열의 경우,배열의 경우.)
{
이 예제에서는 다음과 같이 설명합니다.배열의 마지막 길이:
배열의 마지막 길이:

배열의 마지막 길이:

길이;
}다른{
시스템.배열의 배열은 다음과 같습니다.배열의 길이);
데스 포스+=배열.길이;
}
}
반환 대상;
}

다음은 제네릭과 함께 작동하는 버전입니다:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

// 자바에서 동일한 유형의 여러 배열을 병합하는 일반 함수
공개 정적<티>티 병합(티… 배열)
{
이 방법은 다음과 같습니다. : 배열(
최종 길이+=배열.길이;
}
배열에 대한 자세한 내용은 다음을 참조하십시오.)
{
이 예제에서는 다음과 같이 설명합니다.배열의 마지막 길이:
배열의 마지막 길이:

배열의 마지막 길이:

길이;
}다른{
시스템.배열의 배열은 다음과 같습니다.배열의 길이);
데스 포스+=배열.길이;
}
}
반환 대상;
}

목록

우리는 또한 아래와 같이 자바에서 여러 배열을 병합 목록을 사용할 수 있습니다. 이 방법은 중간 목록 개체의 생성을 포함하므로 권장되지 않습니다.

1
2
3
4
5
6
7
8
9
10
11
12

// 자바(8)에서 위의 여러 배열을 병합하는 기능
공공 정적 문자열 병합(문자열… 배열)
{
목록<문자열>결과=새 배열 목록<>();
스트림.(배열)
의.이 방법은 다음과 같습니다.(1214>(문자열)엑스)
.각(결과::추가);
결과를 반환합니다.새 문자열);
}

자바 7 전에,우리는Collections.addAll()방법을 사용할 수 있습니다:

1
2
3
4
5
6
7
8
9
10

// 자바
공공 정적 문자열 병합에서 여러 배열을 병합하는 기능(문자열… 배열)
{
목록<문자열>목록=새 배열 목록<>();
(문자열 배열:배열)
컬렉션의 경우.모든 추가(목록,배열);
목록을 반환합니다.새 문자열);
}

답글 남기기

이메일 주소는 공개되지 않습니다.