Код, который вы публикуете здесь, предназначен для любого типа массива не только int
, но и для объединения более 2 массивов. (Бессрочный)
T
обозначает универсальный тип. см. Обобщения в Java .
Вы можете использовать только System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
src
исходный массив.
srcPos
начальная позиция в исходном массиве.
dest
массив назначения.
destPos
начальная позиция в данных назначения.
length
количество копируемых элементов массива.
Сначала создайте массив, имеющий длину обоих массивов.
public merge(int[] x, int[] y) {
int[] merged = new int[x.length + y.length]
Затем скопируйте с System.arraycopy
первый массив x
в merged
в 0
.
И скопируйте с System.arraycopy
2-й массив y
в merged
при x.length
Но это не устраняет дубликаты.
Если дубликатов нет, вы можете использовать Set . Но мы должны работать с Integer
, а не int
.
Итак, мы должны преобразовать в Integer
обратно в int
. как:
HashSet<Integer> set = new HashSet<Integer>();
for( int i : x ) {
set.add( Integer.valueOf( i ) );
}
for( int i : y ) {
set.add( Integer.valueOf( i ) );
}
int[] merged = new int[set.size()];
int i = 0;
for( Integer value : set ) {
merged[i++] = value.intValue();
}