日期:2014-05-20  浏览次数:20629 次

数组遍历去重复
两个数组比较相同的,最后想得到三个数组,一个是两个数组相同的数组成的,另外两个分别是原来两个数组去除相同后的!
 原数组:
        String[]  array1 = {1,2,3,4}
       String[]  array2 = {3,4,5,6,7}
 需要得到的数组:
      int [] a1 = {3,4}
     int [] a2 = {1,2}
     int [] a3 = {5,6,7}

求哪位大侠算法比较好的,帮忙写一下!3Q3Q~~
      
数组 算法

------解决方案--------------------
为什么不自己试着写写呢 这个很简单呢
别人写给你  你只是被动接受 下次还是不会
自己试着写下 再遇到也会写
------解决方案--------------------
先把这两个数组转为 java.util.Set, 然后做 retainAll() 可得到交集, 做 removeAll() 可得到减集
------解决方案--------------------
引用:
先把这两个数组转为 java.util.Set, 然后做 retainAll() 可得到交集, 做 removeAll() 可得到减集
顶这个,很省事
------解决方案--------------------
http://blog.csdn.net/lzwjavaphp/article/details/6998453
------解决方案--------------------
C# 里面有专门的函数实现 列举其中一个差集
C# 的这个方法是System.Linq下的

double[] numbers1 = { 2.0, 2.1, 2.2, 2.3, 2.4, 2.5 };
double[] numbers2 = { 2.2 };

IEnumerable<double> onlyInFirstSet = numbers1.Except(numbers2);

foreach (double number in onlyInFirstSet)
    Console.WriteLine(number);

/*
 This code produces the following output:

 2
 2.1
 2.3
 2.4
 2.5
*/


java 里面需要自己实现 当然java里面java8已经有lambad了,另外java里面要用Linq需要另外引包
java 里的Linq http://www.infoq.com/cn/news/2007/09/quaere-linq
java 里的lambadhttp://www.oschina.net/question/12_59047