应用场景:UBT中相邻页面的去重,不知道clickhouse中arrayCompact是怎么实现的???
提供一种方法...待补充..
import java.util.ArrayList;
import java.util.Arrays;
public class demo1 {
public static void main(String[] args) {
int[] arr = {1,2,2,2,3,3,4,4,1,1,3,3,3,3};
System.out.println(Arrays.toString(getArray(arr)));
}
public static Integer[] getArray(int[] arr){
ArrayList<Integer> list = new ArrayList<>();
if (arr.length > 0) {
for (int i = 0; i < arr.length; i++) {
int cur = arr[i];
if (i < arr.length - 1) { // 是否是最后一个,数组越界
int next = arr[i + 1];
if (cur != next ) {
list.add(cur); //加不重复的最后一个元素...
}
}
else {
list.add(arr[arr.length -1]);
}
}
}
else {
return null ;
}
return list.toArray(new Integer[list.size()]) ;
}
}
网友评论