groovy对象比较

本文摘自 groovy中对象的比较以及非空判断 原文比较简洁实用,记录备用。

字符串是否包含在数组中

结合 infor 循环可以很容易判断字符串是否包含在数组中:

def arr=["上海", "南京", "福州"]
for(item in arr){
    println itme
}

我在写shell脚本中也经常使用类似方式:

for i in `ls ~`;do
    wc -l $i
done

groovy对象表

groovy可以比较字符串、map结合、list结合

  • 字符串比较

def str1="Hello World1"
if("Hello World"==str1){
    println "Hello World"
} else {
    println "不匹配"
}
  • map集合的比较

def m1=["name":"李明", "age":20]
def m2=["name":"李明", "age":21]
if(m1==m2){
    println "m1和m2匹配"
} else {
    printlsn "m1和m2不匹配"
}
  • 如果要比较两个对象的引用是否相同,可以使用 is :

println m1.is(m3)

判断对象是否为空

groovy中判断对象是否为空,可以直接使用 if(对象){} :

def m5=["name":"Lucy"]
//判断map集合是否为空(字符串或list都可以这么判断)
if (m5) {
    println "m5不为空"
}

另外,Groovy提供了 isEmpty() 方法来判断列表是否包含元素,如果空则返回true

class Example { 
   static void main(String[] args) { 
      def lst = [11, 12, 13, 14]; 
      def emptylst = [];

      println(lst.isEmpty()); 
      println(emptylst.isEmpty()); 
   } 
}

组合的案例

package org.lxh
public class UseRange{

    public static void main(def args){
        //定义一个range
        def range=1..15
        println range.contains(10);
        println range.from;
        println range.to;
        //使用range输出7天的日期
        def today = new Date()
        def nextWeek = today + 7
        (today..nextWeek).each{
            println it
        }
        //in的用法------(重要)
        def arr=["上海","南京","福州"]
        for(item in arr){
           println  item
        }
        //groovy对象的比较比较---(重要)
        //1.字符串比较
        def str1="Hello World1"
        if("Hello World"==str1){
            println "Hello World"
        }else{
            println "不匹配"
        }
        //2.map集合的比较(list集合也可以这样比较)----(重要)
        def m1=["name":"李明","age":20]
        def m2=["name":"李明","age":21]
        def m3=["name":"李明","age":21]
        if(m1==m2){
            println "m1和m2匹配"
        }else{
            println "m1和m2不匹配"
        }
        //判断对象的引用是否相同---(重要)
        println m1.is(m3)
        //if判断对象是否为空
        def m5=["name":"Lucy"]
        //判断map集合是否为空(字符串或list都可以这么判断)----(重要)
        if(m5){
           println "m5不为空"
        }
        //更为方便的判断对象是否为空的操作符 ?.-------(重要)
        println "${m5?.name}"
    }
}

参考

Last updated