如何取出数组中相同的对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何取出数组中相同的对象相关的知识,希望对你有一定的参考价值。

JAVA中有LIST, SET等集合放对象很方便.
其中SET可以过滤掉重复的对象,那有没有反过来的,把重复的对象取出来而过滤掉不重复的对象的数组?
如果没有的话该怎么实现啊?

用以下代码,a是要找重复数据的List,最后得到c,里面都是a的重复数据,只出现一次的已经过滤掉了。
如果c里面的数据要求不重复,把ArrayList换成HashSet就行了。

List a = new ArrayList();
a.add("123");
a.add("123");
a.add("123");
a.add("123");
a.add("456");
a.add("789");
a.add("123");

Set b = new HashSet();
ArrayList c = new ArrayList();
for (int i = 0; i < a.size(); i++)
Object x = a.get(i);
if (b.contains(x))
c.add(x);

b.add(x);
参考技术A public class Test
public static void main(String args[])
List list = new List();
list.add("ost");
list.add("gtzwj");
list.add("ost");
list.remove(list.equals("ost"));
System.out.println(list);

JavaScript 将数组中具有相同值的对象 取出组成新的数组

 1 var arr=[{name:2,id:3},{name:2,id:4},{name:3,id:5},{name:3,id:6},{name:1,id:1},{name:1,id:2}];
 2 
 3 // 传入一个数组
 4 // 按照特定方式格式化
 5 function sortArr(arr, str) {
 6     var _arr = [],
 7         _t = [],
 8         // 临时的变量
 9         _tmp;
10 
11     // 按照特定的参数将数组排序将具有相同值得排在一起
12     arr = arr.sort(function(a, b) {
13         var s = a[str],
14             t = b[str];
15 
16         return s < t ? -1 : 1;
17     });
18 
19     if ( arr.length ){
20         _tmp = arr[0][str];
21     }
22     // console.log( arr );
23     // 将相同类别的对象添加到统一个数组
24     for (var i in arr) {
25         console.log( _tmp);
26         if ( arr[i][str] === _tmp ){
27             console.log(_tmp)
28             _t.push( arr[i] );
29         } else {
30             _tmp = arr[i][str];
31             _arr.push( _t );
32             _t = [arr[i]];
33         }
34     }
35     // 将最后的内容推出新数组
36     _arr.push( _t );
37     return _arr;
38 }
39 
40 sortArr( arr, ‘name‘);

 

以上是关于如何取出数组中相同的对象的主要内容,如果未能解决你的问题,请参考以下文章

Java 两个数组,取出两个数组里面的相同元素在存在另外一个数组中?

如何获取两个数组相同元素

取出两个数组中相同的合约

TypeScript - 根据属性值从数组中取出对象

JS取出两个数组中的不同或相同元素

找出两个数组中相同的元素,不排序直接两次循环取出