首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android比较两个数组?

Android比较两个数组?
EN

Stack Overflow用户
提问于 2012-11-02 01:45:03
回答 3查看 2.7K关注 0票数 0

我有一个问题,我需要比较两个数组,并且我想得到不匹配的值。

示例:

代码语言:javascript
运行
复制
List<String> Array1=new ArrayList<String>();
List<String> Array2=new ArrayList<String>();
List<String> Array3=new ArrayList<String>();

Array1.add("1");
Array1.add("23");
Array1.add("1211");
Array1.add("12232");
Array1.add("231");
Array1.add("2231");

Array2.add("1");
Array2.add("23");
Array2.add("231");
Array2.add("2231");

// Array3 values are 1211 12232

这个是可能的吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-02 01:50:50

您需要使用removeAll

代码语言:javascript
运行
复制
List<String> array3 = new ArrayList<String>(array1);//Create copy of array 1
array3.removeAll(array2);//Remove common elements 
票数 3
EN

Stack Overflow用户

发布于 2012-11-02 01:51:26

使用Set (它也会删除重复项)

代码语言:javascript
运行
复制
 Set<String> set1 = new HashSet(array1);
 Set<String> set2 = new HashSet(array2);
 set1.removeAll(set2);
票数 3
EN

Stack Overflow用户

发布于 2012-11-02 01:49:31

你必须自己去做,但这并不是很难。一种可能的解决方案是:

代码语言:javascript
运行
复制
Collections.sort( Array2 );  // Don't need this one if Array2 is already sorted.
for( String s : Array1 ) {
    if ( Collections.binarySearch( Array2, s ) < 0 )
        Array3.add( s );
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13182678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档