「java列表合并去重」合并两个列表并去重
本篇文章给大家谈谈java列表合并去重,以及合并两个列表并去重对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、Java中如何去除List中的重复的值
- 2、java 怎么把多个list 合并成一个去掉重复的
- 3、JAVA,用List做,两个数组中数的合并和去除相同元素
- 4、Java合并两个数组,把相同的数据都去掉(不是去重!不是去重!不是去重!)?
- 5、java对List去重并排序,如何快速地去掉两个
- 6、java 合并两个 list内容 剔除相同内容
Java中如何去除List中的重复的值
1.用双重循环逐一检查元素是否重复,代码如下:
public static void removeDuplicate(List list) {
for (int i = 0; i list.size() - 1; i++) {
for (int j = list.size() - 1; j i; j--) {
if (list.get(j).equals(list.get(i))) {
list.remove(j);
}
}
}
}
2.通过HashSet去重,代码如下:
public static void removeDuplicate1(List list) {
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
}
java 怎么把多个list 合并成一个去掉重复的
示例代码:
public static void main(String[] args){
ListInteger list1 = new ArrayListInteger();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
ListInteger list2 = new ArrayListInteger();
list2.add(1);
list2.add(4);
list2.add(7);
list2.add(10);
ListInteger listAll = new ArrayListInteger();
listAll.addAll(list1);
listAll.addAll(list2);
listAll = new ArrayListInteger(new LinkedHashSet(listAll));
System.out.println(listAll);
}
输出:
[1, 2, 3, 4, 7, 10]
代码要典:
合并 使用java.util.List.addAll(Collection? extends Integer)
去重,借助LinkedHashSet
JAVA,用List做,两个数组中数的合并和去除相同元素
package com.ajax.test;
import java.io.File;
import java.io.FileWriter;
import java.util.Arrays;
/**
* 把一个数组的元素复制到另个数组; 去除重复元素不能用SET集合; 每次复制的记录输到一个文件里
*
* @author ajax_2003
* @version 1.0, 2009-7-26
*
*/
public class CopyArrayAndRemoveDuplicate {
private static String FILE_PATH = "d:/abc.txt";
private static File file;
static {
file = new File(FILE_PATH);
}
/**
* 取出冗余数据
*
* @param nums
* 原数组
*/
private int[] removeDuplicate(int[] nums) throws Exception {
int[] tmpArray = new int[nums.length];
int count = 0;
loop: //
for (int i = 0; i nums.length; i++) {
int tmp = nums[i];
for (int j = 0; j count; j++) {
if (tmp == tmpArray[j])
continue loop;
}
tmpArray[count++] = tmp;
log("成功复制了元素" + tmp);// 写日志
}
return copyArray(tmpArray, 0, count);
}
/**
* 拷贝数组
*
* @param srcArray
* 要拷贝的数组
* @param startIndex
* 拷贝起始索引
* @param endIndex
* 拷贝结束索引
* @return 结果数组
*/
private int[] copyArray(int[] srcArray, int startIndex, int endIndex)
throws Exception {
if (endIndex = startIndex)
throw new Exception("Argumens wrong!");
int[] desArray = new int[endIndex - startIndex];
System.arraycopy(srcArray, startIndex, desArray, 0, desArray.length);
return desArray;
}
/**
* 输出操作日志(即: 每次复制的记录输到一个文件里)
*
* @param oprate
*/
private void log(String oprate) {
FileWriter out = null;
try {
out = new FileWriter(file, true);
out.write(oprate + "\r\n");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (out != null)
out.close();
out = null;
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
int[] nums = { 1, 223, 1, 2, 2, 2, 3, 2, 3, 34, 45, 5, 5, 3, 23, 2, 2,
3, 4, 5, 5, 6, 7, 78, 8, 9, 34, 90, 45, 675, 4, };
int[] finalArray;
try {
finalArray = new CopyArrayAndRemoveDuplicate()
.removeDuplicate(nums);
System.out.println(Arrays.toString(finalArray));
} catch (Exception e) {
e.printStackTrace();
}
}
}
有些地方可能考虑的不完全,见谅!
//合并数组并排序
public void arrCopy() {
int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int[] b = { 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000 };
System.arraycopy(a, 2, b, 5, 5);
for(int n : b){
System.out.print(n+",");
}
System.out.println();
}
//去掉重复元素
public static void main(String args[]) {
int[] arr = { 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7, 8, 9, 9, 10, 11, 11,
11, 12, 12, 13, 14, 14, 15 }; // 预设数据数组
int index = 1; // 保存最后一个不重复的位置
int last = arr[0];
for (int i = 1; i arr.length; i++) {
if (arr[i] != last) {
arr[index] = arr[i];
last = arr[index];
index++;
}
}
int[] rtn = new int[index];
System.arraycopy(arr, 0, rtn, 0, index);
System.out.println(Arrays.toString(rtn));
}
Java合并两个数组,把相同的数据都去掉(不是去重!不是去重!不是去重!)?
public static void main(String[] args) {
int[] arr = new int[]{1,2,3,4};
int[] arr1 = new int[]{3,4,5,6};
ListInteger list = combineArray(arr, arr1);
int size = list.size();
int[] arrNew = new int[size];
for (int i =0; i size; i ++) {
arrNew[i] = list.get(i);
}
for (int i =0; i size; i ++) {
System.out.println(arrNew[i]);
}
}
public static ListInteger combineArray(int[] arr, int[] arr1) {
ListInteger list = Arrays.stream(arr).boxed().collect(Collectors.toList());
ListInteger list1 = Arrays.stream(arr1).boxed().collect(Collectors.toList());
ListInteger listAll = new ArrayList();
listAll.addAll(list);
listAll.addAll(list1);
list1.retainAll(list);
listAll.removeAll(list1);
return listAll;
}
java对List去重并排序,如何快速地去掉两个
Java8开始,对数值,集合等提供了Stream流操作,可以方便的对集合进行操作.
比如 筛选,过滤,去重, 映射, 排序,规约,收集 等操作
简单的参考代码如下
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
// 使用Java8 的Stream特性 和 Java8的Lambda 语句
public class Demo {
public static void main(String[] args) {
// 需求: 集合去重,排序,得到一个新集合里面的元素是之前元素的平方
ListInteger list=Arrays.asList(5,2,2,1,3,4);
ListInteger listResult = list
.stream() // 得到流
.distinct() // 去重 5,2,1,3,4
.sorted() // 自然排序 , 也可以自定义排序规则1,2,3,4,5
.map(x-x*x) // 每个元素求平方1,4,9,16,25
.collect(Collectors.toList()); //收集并返回
System.out.println(listResult);//1,4,9,16,25
}
}
java 合并两个 list内容 剔除相同内容
遍历这两个list ,使用 双层循环,在内循环判断,若外循环的list的value存在在内循环中,则同时删除两个list中的那个value,不存在的话,使用第三个list来动态添加,最后返回第三个list就是你所需要的resultList。
关于java列表合并去重和合并两个列表并去重的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。