int类型数组转换为集合,使用steam的装箱boxed()方法:
List<Integer> collect = Arrays.stream(arr).boxed().collect(Collectors.toList());
去重可以使用java8的steam流的distinct()方法。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author xasnow
* @Date 2019/12/19
*/
public class ListRemoveSame {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 1, 2, 6, 4};
System.out.println("原始数据: " + Arrays.toString(arr));
//方式一:
List<Integer> collect = Arrays.stream(arr).distinct().boxed().collect(Collectors.toList());
System.out.println("Stream去重: " + collect);
//方式二:
List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
// 从list中索引为0开始往后遍历
for (int i = 0; i < list.size() - 1; i++) {
// 从list中索引为 list.size()-1 开始往前遍历
for (int j = list.size() - 1; j > i; j--) {
// 进行比较
if (list.get(j).equals(list.get(i))) {
// 去重
list.remove(j);
}
}
}
System.out.println("原始遍历去重: " + list);
}
}
结果:
原始数据: [1, 2, 3, 4, 1, 2, 6, 4]
Stream去重: [1, 2, 3, 4, 6]
原始遍历去重: [1, 2, 3, 4, 6]