「java列表合并去重」合并两个列表并去重

博主:adminadmin 2022-12-30 23:30:11 706

本篇文章给大家谈谈java列表合并去重,以及合并两个列表并去重对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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列表合并去重和合并两个列表并去重的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。