`
sunxboy
  • 浏览: 2878404 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

打动你朋友的11条Groovy超炫代码

 
阅读更多

Dustin Marx在其博文中,跟读者分享了11条Groovy的超炫代码。

  1. List中的每个元素乘2:
  2. 1 (1..10)*.multiply(2)
  3. List求和:
  4. 1 //元素均为为数字
    2 (1..1000).sum()
    3 //元素含有字符
    4 ['a',3,'z'].sum()  //结果为字符串‘a3z’
  5. List中是否含有某个字符串
  6. 1 def wordList = ['groovy''akka''grails framework''spock','typesafe']
    2 def tweet = 'This is an example tweet talking about groovy and spock.'
    3 wordList.any { word -> tweet.contains(word) }
    01 //该方法同样适用于对象
    02 class Person{
    03     String name
    04 }
    05 def person1=new Person(name:'person1')
    06 def person2=new Person(name:'person2')
    07 def person3=new Person(name:'person3')
    08 def wordList = [person1,person2]
    09 def tweet = [person3]
    10 wordList.any { it -> tweet.contains(it) }

    上述代码结果为false,如果tweet = [person3,person1],结果就为true

  7. 文件内容读取,易如反掌:
  8. 1 //读取所有内容
    2 new File("data.txt").text
    3 //按行读取,返回List
    4 new File("data.txt").readLines()
  9. 生日快乐!
  10. 1 (1..4).each println 'Happy Birthday ' + ((it == 3) ? 'dear Arturo' 'to You') }
  11. 按条件拆分List
  12. 1 def (passed, failed) = [495876828890].split{ it > 60 }
  13. 获取和解析XML Web服务
  14. 1 def results = newXmlSlurper().parse('http://search.twitter.com/search.atom?&q=groovy')
  15. 找出List中最大最小值:
  16. 1 [1435, -74698].min()
    2 [1435, -74698].max()
  17. 使用GPars提供的直观、安全的方式控制Groovy的并行任务
  18. 1 import groovyx.gpars.*
    2 GParsPool.withPool { def result = dataList.collectParallel { processItem(it) } }
  19. 找质数算法(Sieve of Eratosthenes筛法)
  20. 1 def t = 2..100
    2 (2..Math.sqrt(t.last())).each { n -> t -= ((2*n)..(t.last())).step(n) }
    3 println t

    这个方法来自于Groovy Prime Numbers的评论。

  21. 有奖问答:FizzBuzz问题 - 打印1到100这些数字,遇到数字为3的倍数的时候,打印“Fizz”替代数字,5的倍数用“Buzz”代替,既是3的倍数又是5的倍数打印“FizzBuzz”。
  22. 1 for (i in 1..100) {
    2     println "${i%3?'':'Fizz'}${i%5?'':'Buzz'}" ?: i
    3 }

另附两个有趣问题的解答:

现在手头有0.5美元、0.25美元、10美分、5美分、1美分,将1美元换成这些零钱,有多少种换法:

01 def count=0
02 101.times{ x1 -> 21.times{
03     x2 -> 11.times{
04         x3 -> 5.times{
05             x4 -> 3.times{
06                 x5 -> if(x1*1+x2*5+x3*10+x4*25+x5*50 == 100){
07                          count++
08                          println "$x1*1+$x2*5+$x3*10+$x4*25+$x5*50 == 100"
09                     }
10                 }
11             }
12         }
13     }
14 }
15 println count

汉诺塔问题:

01 def hanoita(n, a, b, c){
02     if(n==1){
03         println "$n : $a -> $c"
04     }else{
05         hanoita n-1, a, c, b
06         println "$n : $a -> $c"
07         hanoita n-1, b, a, c
08     }
09 }
10 hanoita 5'a''b''c'

奇妙吧?就是这么简单!对于上述代码,如果你有更好的提议,也可以分享给大家。

分享到:
评论

相关推荐

    Groovy in Action源代码

    《Groovy in Action》是一本深受开发者喜爱的书籍,它深入浅出地介绍了Groovy编程语言,涵盖了Groovy的基础语法、高级特性以及在实际开发中的应用。源代码是书籍内容的实践部分,对于读者理解Groovy语言并进行实战...

    java在嵌入运行groovy代码1

    如果你的 Groovy 脚本是一个完整的类结构,包括 `main` 方法,你可以使用 `GroovyShell` 来执行 `main` 方法并传递参数,就像下面的代码所示: ```java String[] args = new String[]{"Zhangsan", "10"}; Binding ...

    Elasticsearch Groovy 远程代码执行漏洞1

    在本文中,我们将探讨 Elasticsearch 中的一个 Groovy 远程代码执行漏洞,该漏洞允许攻击者通过构造恶意请求来执行任意系统命令,从而可能导致严重的信息泄露或系统破坏。这个漏洞主要源于 Elasticsearch 允许用户在...

    eclipse安装groovy插件的步骤

    4. **编写 Groovy 代码**:在新建的 Groovy 类文件中,可以开始编写 Groovy 代码。例如: ```groovy class Greeting { def sayHello() { println "Hello, Groovy!" } } ``` 5. **运行 Groovy 类**:右键点击...

    Java中使用Groovy的三种方式

    在Java开发中,Groovy是一种强大的、动态类型的脚本语言,它可以无缝地与Java代码集成,为开发者提供了更简洁、灵活的语法。本文将深入探讨在Java项目中使用Groovy的三种主要方式,并阐述它们各自的优势和应用场景。...

    groovy in action 中文版 2017.11

    闭包(closures)是Groovy中非常重要的一个概念,闭包是一种可以作为参数传递、可以从其被定义的作用域外调用的代码块。Groovy的闭包提供了非常强大的功能,比如高阶函数的能力,它们可以用来实现迭代、排序和其他...

    groovy-sdk-4.0.3

    2. **编译器**:Groovy SDK提供了一个强大的编译器,可以将Groovy源代码编译成Java字节码,使得Groovy程序可以与Java代码无缝集成。 3. **标准库**:Groovy SDK附带了一套丰富的标准库,包含各种实用的类和函数,如...

    groovy-all

    如果你的项目中使用了Groovy,这个库将提供一个完整的生态系统,帮助你充分利用Groovy的灵活性和效率。在Java项目中引入这个库,你可以轻松地集成Groovy脚本,提升开发效率,同时得益于其动态特性和强大的库支持。

    groovy入门经典,groovyeclipse 插件

    Groovy是一种动态、灵活的编程语言,它是Java平台上的一个扩展,可以无缝集成到Java项目中。Groovy的语法简洁,支持面向对象编程、函数式编程,并提供了许多现代语言特性,如闭包和动态类型。这使得Groovy成为快速...

    Java调用Groovy,实时动态加载数据库groovy脚本

    首先,Groovy是一种与Java高度兼容的脚本语言,它可以无缝地与Java代码集成,共享Java类库。Groovy代码可以被Java编译器理解,并且在运行时,GroovyShell或GroovyClassLoader等工具能够即时编译和执行Groovy脚本,这...

    groovy入门实例代码详细(包括字符串,map,闭包等等)

    Groovy是一种基于Java平台的动态编程语言,它与Java语法高度兼容,但提供了更简洁、更灵活的写法。在Groovy中,你可以感受到更强的表达性和更高的开发效率。本入门实例代码详细地涵盖了Groovy的一些核心概念和常用...

    apache-groovy-sdk-4.0.1下载

    解释器允许你运行Groovy脚本,而编译器则可以将Groovy代码转换成Java字节码,使得Groovy程序能在Java虚拟机(JVM)上运行。这对于Java开发者来说是个巨大的优势,因为他们可以无缝地将Groovy集成到现有的Java项目中...

    Groovy入门教程[参照].pdf

    Groovy 是一种基于 Java 语言的脚本语言,运行在 JVM 中,语法与 Java 相似,但抛弃了 Java 的一些烦琐的语法规则,提供了更加简洁和灵活的编程体验。 Groovy 的特点 1. 简洁的语法:Groovy 语法简洁,减少了代码...

    groovy的eclipse插件

    Groovy是一种动态、灵活的编程语言,它在Java平台上运行,并与Java紧密集成。Eclipse是流行的开源集成开发环境(IDE),广泛用于Java和其他语言的开发。为了在Eclipse中编写和调试Groovy代码,我们需要安装Groovy的...

    groovy

    Groovy是一种基于Java平台的、动态的、强大的编程语言,它设计的目标是增强开发者的生产力。Groovy结合了Java的静态类型系统和Python、Ruby等动态语言的灵活性,使得开发者可以更加高效地编写代码。本篇文章将深入...

    apache-groovy-sdk-3.0.9.zip

    编写第一个 Groovy 类,然后学习如何使用 JUnit 轻松地进行测试。借助功能完善的 Groovy 开发环境和使用技能,您将轻松完成本教程的学习。最重要的是,您将学会如何在日常 Java 应用程序开发中联合使用 Groovy 和 ...

    java动态代码执行

    在Java中,Groovy是一个强大的脚本语言,它与Java语法兼容,并且可以无缝集成到Java应用程序中,使得动态代码执行变得更加便捷。Groovy提供了GroovyShell、GroovyScriptEngine和GroovyClassLoader等工具,允许我们...

    精通 Groovy--下一代开发语言

    Groovy 是 JVM 的一个替代语言 — 替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同。在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有...

    apache-groovy-sdk-3.0.6.zip

    4. **Groovy Ant任务**:Groovy SDK包含了一些Ant任务,允许你在Ant构建脚本中直接使用Groovy,比如运行Groovy脚本、编译Groovy源代码等。 5. **Groovy类库**:Groovy标准库提供了一系列的类和模块,涵盖了集合操作...

    groovy速查手册

    这样做的好处在于,你可以像使用Java代码一样使用Groovy代码,无需担心兼容性问题。 - **从Groovy调用Java**:Groovy完全支持调用任何Java代码,就像在Java中一样直接使用。 - **从Java调用Groovy**:在Java中调用...

Global site tag (gtag.js) - Google Analytics