Groovy   发布时间:2022-04-12  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Groovy Tip 22 魔幻数组 二大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

                          Groovy Tip 22 魔幻数组

 

 

我们记得在前一篇《魔幻数组》系列中的例子中使用了一个名为list6的数组,如下:

def list6 = [ 1,1,2,3,5 ]

     

看到了它,我们就可以看到里面有很多重复元素,我们马上也就有了要把重复元素去掉的要求。

Java语言中,我们也有去掉List对象中重复元素的简单方法,那就是使用Set对象,因为Set对象是没有重复元素的。如下:

 

@H_772_131@       List list = new ArrayList();

@H_772_131@       list.add("a");

@H_772_131@       list.add("a");

@H_772_131@       list.add("b");

@H_772_131@   

 

Java语言中,初始化一个List对象的确是一件烦心的工作,别理它,我们接着往下做:

 

@H_772_131@       Set set = new HashSet();

@H_772_131@       set.addAll(list);

@H_772_131@   

可以看到,我们把list对象的元素放到了set对象里,感谢“addAll方法,让我们的工作减轻了很多。下面就是将set对象的元素“addAll”回List对象了:

List list1 = new ArrayList();

@H_772_131@      

        list1.addAll(set);

@H_772_131@   

也很简单,下面我们来看看list1对象的元素到底咋样了:

 

@H_772_131@       for(int i=0;i<list1.size();i++)

@H_772_131@       {

           System.@H_954_403@out.println(list1.get(i));

@H_772_131@       }

 

结果为:

a

b

 

可以看到,list对象中的重复的“a”元素的确没有了,达到了我们的目的。在Java语言中,去掉List对象中的重复元素比较简单,就是将元素“allAll”进Set对象,然后再将元素“allAll”回List对象。

但是,在Groovy语言中,我们的方法更加简单,不需要用Set对象,而是使用“unique方法。如下:

 

      def list5 = [ 1,5 ].unique()

     

      println list5

 

 

结果为:

[1,2,3,5]

 

可以看到,在Groovy语言中使用“unique方法的确比Java语言达到相同的目的要简单得多。但是“unique方法还有更广泛的用途,比如我们如下的一个GroovyBean对象:

 

class Empl

{

    String id;

   

    String name;

}

 

 

同时,我们有了如下的一个Empl对象为元素的数组:

 

 

   

      def list9 = [new Empl(id:1,name:'a'),new Empl(id:2,name:'b'),new Empl(id:1,name:'c')]

 

 

可以看到,list9对象有三个元素,其中第一个元素和第三个元素的“id属性的值是相同的。如果我们有如下要求:我们对于Empl的对象如果id属性的值相同的话,就视为同一个对象;如果list9对象中有相同的Empl对象,那么我们要去掉相同的元素。对于这样的要求,我们在Java语言中使用Set对象是无法实现的。但我们在Groovy语言中却能够使用“unique方法实现。请看下面的代码

 

 

      def list10 = list9.unique{

@H_772_131@         it.id

      }

 

 

可以看到,对于上一个unique方法没有输入参数,但这里的“unique方法却有一个闭包对象作为输入方法,这个闭包对象告诉“unique方法使用什么方法来辨别数组中的元素相同。如上例中是使用数组中元素的“id属性是否相等来区别数组中的元素是否相同的。

我们来看一下上例中的结果:

 

      list10.each{

@H_772_131@         println "${it.iD} : ${it.namE}"

      }

 

 

结果为:

1 : a

2 : b

 

可以看到,list10对象中的确只剩下两个元素了。

Groovy语言中,“unique方法不但比Java语言达到相同的目的要简单得多,而能对数组元素为GroovyBean对象的数组也能去掉重复元素,从而使得使用范围更加广泛。

大佬总结

以上是大佬教程为你收集整理的Groovy Tip 22 魔幻数组 二全部内容,希望文章能够帮你解决Groovy Tip 22 魔幻数组 二所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。