arraylist-找出两个list集合中是否有相同元素的算法?

问题描述

找出两个list集合中是否有相同元素的算法?

@Test
public void say() {
List listA = new ArrayList();
List listB = new ArrayList();

    listA.add("z");
    listA.add("a");
    listA.add("b");
    listA.add("c");

    listB.add("c");
    listB.add("d");
    listB.add("r");
    listB.add("e");
}

有什么简易的算法吗? 或者说通常的大家常用的算法?  难道真的就是连个for循环判断吗?

解决方案

比较两个List是否相等(相同元素)
python 中两个list是否有相同元素的办法
从“比较两个含有多个不同元素的集合是否相同”引申出的几种算法

解决方案二:

借助于Hashcode+循环

解决方案三:

http://www.blogjava.net/yourfriend/articles/377755.html
交集,并集

解决方案四:

你可以采用交集或并集去做

解决方案五:

   List list1 =new ArrayList();
  list1.add("1111");
  list1.add("2222");
  list1.add("3333");

  List list2 =new ArrayList();
  list2.add("3333");
  list2.add("4444");
  list2.add("5555");

  //并集
  //list1.addAll(list2);
  //交集
  //list1.retainAll(list2);
  //差集
  //list1.removeAll(list2);
  //无重复并集
    list2.removeAll(list1);
    list1.addAll(list2);
时间: 2024-10-24 10:23:15

arraylist-找出两个list集合中是否有相同元素的算法?的相关文章

java 集合问题找出两个集合中相同的元素并打印出来

问题描述 java 集合问题找出两个集合中相同的元素并打印出来 把1-100 数随机放入到 数组长度为[97] 并且这些元素不能重复,找出未输入进数组的数! 解决方案 package set; import java.util.HashSet; /* 作业: 把1-100 数随机不重复放入到 数组[97] ,找出未存入的数! */ public class Test5 { public static void main(String[] args) { // 1.创建 一个 HashSet集合,

数据结构 算法-如何用java中串的操作方法找出两个字符串中所有共同的字符

问题描述 如何用java中串的操作方法找出两个字符串中所有共同的字符 通过实现对串的基本操作的算法设计,运用模式匹配算法KMP和Brute-Force,展出两个字符串中所有共同的字符,判断一个字符串是否为E-mail地址

找出两数组中不同的数据,并查看他们在以前数组中的索引值

问题描述 找出两数组中不同的数据,并查看他们在以前数组中的索引值 var aa = [1,21,21,21,28]; var bb = [3,4,27,39,21]; var cc = []; var tmp = aa.concat(bb); var o = {}; for (var i = 0; i < tmp.length; i ++){ (tmp[i] in o) ? o[tmp[i]] ++ : o[tmp[i]] = 1; } for (x in o){ if (o[x] == 1){

数组 算法-找出两数组中不同的数据,并查看他们在以前数组中的索引值

问题描述 找出两数组中不同的数据,并查看他们在以前数组中的索引值 var aa = [1,21,21,21,28]; var bb = [3,4,27,39,21]; var cc = []; var tmp = aa.concat(bb); var o = {}; for (var i = 0; i < tmp.length; i ++){ (tmp[i] in o) ? o[tmp[i]] ++ : o[tmp[i]] = 1; } for (x in o){ if (o[x] == 1){

找出两个字符串中最大子字符串,如&quot;abractyeyt&quot;,&quot;dgdsaeactyey&quot;的最大子串为&quot;actyet

// 最大子字符串.cpp : 定义控制台应用程序的入口点. // //找出两个字符串中最大子字符串,如"abractyeyt","dgdsaeactyey"的最大子串为"actyet" #include <iostream> #include <string> using namespace std; string MaxSameStr(string str1,string str2) { string result;

快速找出两个Word文档间的差别

  我们经常会遇到这样的问题:两份Word文件之中,只有一些极为细小的区别,如果单纯通过人工的方法去进行校对,那么不仅效率很低,而且也容易出错,容易漏掉一些不太明显的区别.Word 2003已经内置了一个小功能,可以让我们快速地找出两个Word文档之间的不同. 操作步骤如下: 首先打开待比较的Word源文件. 执行"工具"菜单→"比较并合并文档"命令,在弹出的"比较并合并文档"窗口中单击另一份待比较文件,然后再勾选"精确比较"

算法 优化-编写一个函数,该函数将筛选出两个字符串参数中相同的字符,并按字母序进行排序后返回

问题描述 编写一个函数,该函数将筛选出两个字符串参数中相同的字符,并按字母序进行排序后返回 本题是某欧外企面试题,下面给出一个我当时的C语言解法,希望请教各位高手们更为高效的解法. char *func(const char *s1, const char *s2) { char temp[256];//ascii_table memset(temp, 0, sizeof(temp)); char *p1 = s1, *p2 = s2; int len = 0; for(; *p1!=0; p1

找出两个字符的最大子串

package cn.ic; //要求:找出两个字符串中的最大子串,即最大的交集.如:"udappyzk"和"xzhappymol"最大子串为appy //步骤: //1 找出两个字符串中的较短者 //2 分别将较短子串除去0,1,2,3,4--个元素,且判断除去X个元素后的子串是否在较长字符串中出现 //分析: //以题目中较短字符串"udappyzk"为例 //(1)去除0个元素的情况,有1种操作,得到本身字符串作为最大子串 //(2)去除1

编程-给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数。

问题描述 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数. (在文件中至少缺失一个这样的数为什么?)括号里的话怎么得到的 在具有足够内存的情况下,如何解决该问题? 如果有几个外部的临时文件可以用,但是只有几百字节的内存,又该如何解决该问题. 解决方案 足够内存,用位图法.定义一个arr[4294967296]大小的数组,遍历顺序文件,遇到一个值,就把对应下标的置1,最后遍历这个数组,找0的元素. 解决方案二: 如果只有几百的内存,可以用hashtable.