Submit Search
Upload
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language Groovy Part)
•
1 like
•
2,480 views
U
Uehara Junji
Follow
レッツゴーデベロッパー2011発表資料、レッツゴーJavaデベロッパー「プログラミング言語Groovy編」
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 29
Download now
Download to read offline
Recommended
Easy Going Groovy 2nd season on DevLOVE
Easy Going Groovy 2nd season on DevLOVE
Uehara Junji
Groovy 1.8の新機能について
Groovy 1.8の新機能について
Uehara Junji
Use of Apache Commons and Utilities
Use of Apache Commons and Utilities
Pramod Kumar
Advanced Debugging Using Java Bytecodes
Advanced Debugging Using Java Bytecodes
Ganesh Samarthyam
Java Generics - by Example
Java Generics - by Example
Ganesh Samarthyam
Java Class Design
Java Class Design
Ganesh Samarthyam
Comparing JVM languages
Comparing JVM languages
Jose Manuel Ortega Candel
Scala is java8.next()
Scala is java8.next()
daewon jeong
Recommended
Easy Going Groovy 2nd season on DevLOVE
Easy Going Groovy 2nd season on DevLOVE
Uehara Junji
Groovy 1.8の新機能について
Groovy 1.8の新機能について
Uehara Junji
Use of Apache Commons and Utilities
Use of Apache Commons and Utilities
Pramod Kumar
Advanced Debugging Using Java Bytecodes
Advanced Debugging Using Java Bytecodes
Ganesh Samarthyam
Java Generics - by Example
Java Generics - by Example
Ganesh Samarthyam
Java Class Design
Java Class Design
Ganesh Samarthyam
Comparing JVM languages
Comparing JVM languages
Jose Manuel Ortega Candel
Scala is java8.next()
Scala is java8.next()
daewon jeong
Kotlin Bytecode Generation and Runtime Performance
Kotlin Bytecode Generation and Runtime Performance
intelliyole
Twins: Object Oriented Programming and Functional Programming
Twins: Object Oriented Programming and Functional Programming
RichardWarburton
Kotlin, why?
Kotlin, why?
Paweł Byszewski
FP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyond
Mario Fusco
Java 7, 8 & 9 - Moving the language forward
Java 7, 8 & 9 - Moving the language forward
Mario Fusco
Java 8 Stream API. A different way to process collections.
Java 8 Stream API. A different way to process collections.
David Gómez García
Java generics final
Java generics final
Akshay Chaudhari
Java VS Python
Java VS Python
Simone Federici
Refactoring to Java 8 (Devoxx BE)
Refactoring to Java 8 (Devoxx BE)
Trisha Gee
Functional Programming in Java 8 - Exploiting Lambdas
Functional Programming in Java 8 - Exploiting Lambdas
Ganesh Samarthyam
Unit testing concurrent code
Unit testing concurrent code
Rafael Winterhalter
Java 8 Lambda Expressions
Java 8 Lambda Expressions
Scott Leberknight
java sockets
java sockets
Enam Ahmed Shahaz
3. Объекты, классы и пакеты в Java
3. Объекты, классы и пакеты в Java
DEVTYPE
Ast transformations
Ast transformations
HamletDRC
Scala - where objects and functions meet
Scala - where objects and functions meet
Mario Fusco
Important java programs(collection+file)
Important java programs(collection+file)
Alok Kumar
Collections Framework
Collections Framework
Sunil OS
Java 7 at SoftShake 2011
Java 7 at SoftShake 2011
julien.ponge
Java 7 JUG Summer Camp
Java 7 JUG Summer Camp
julien.ponge
GroovyConsole
GroovyConsole
Kiyotaka Oku
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
Nobuhiro Sue
More Related Content
What's hot
Kotlin Bytecode Generation and Runtime Performance
Kotlin Bytecode Generation and Runtime Performance
intelliyole
Twins: Object Oriented Programming and Functional Programming
Twins: Object Oriented Programming and Functional Programming
RichardWarburton
Kotlin, why?
Kotlin, why?
Paweł Byszewski
FP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyond
Mario Fusco
Java 7, 8 & 9 - Moving the language forward
Java 7, 8 & 9 - Moving the language forward
Mario Fusco
Java 8 Stream API. A different way to process collections.
Java 8 Stream API. A different way to process collections.
David Gómez García
Java generics final
Java generics final
Akshay Chaudhari
Java VS Python
Java VS Python
Simone Federici
Refactoring to Java 8 (Devoxx BE)
Refactoring to Java 8 (Devoxx BE)
Trisha Gee
Functional Programming in Java 8 - Exploiting Lambdas
Functional Programming in Java 8 - Exploiting Lambdas
Ganesh Samarthyam
Unit testing concurrent code
Unit testing concurrent code
Rafael Winterhalter
Java 8 Lambda Expressions
Java 8 Lambda Expressions
Scott Leberknight
java sockets
java sockets
Enam Ahmed Shahaz
3. Объекты, классы и пакеты в Java
3. Объекты, классы и пакеты в Java
DEVTYPE
Ast transformations
Ast transformations
HamletDRC
Scala - where objects and functions meet
Scala - where objects and functions meet
Mario Fusco
Important java programs(collection+file)
Important java programs(collection+file)
Alok Kumar
Collections Framework
Collections Framework
Sunil OS
Java 7 at SoftShake 2011
Java 7 at SoftShake 2011
julien.ponge
Java 7 JUG Summer Camp
Java 7 JUG Summer Camp
julien.ponge
What's hot
(20)
Kotlin Bytecode Generation and Runtime Performance
Kotlin Bytecode Generation and Runtime Performance
Twins: Object Oriented Programming and Functional Programming
Twins: Object Oriented Programming and Functional Programming
Kotlin, why?
Kotlin, why?
FP in Java - Project Lambda and beyond
FP in Java - Project Lambda and beyond
Java 7, 8 & 9 - Moving the language forward
Java 7, 8 & 9 - Moving the language forward
Java 8 Stream API. A different way to process collections.
Java 8 Stream API. A different way to process collections.
Java generics final
Java generics final
Java VS Python
Java VS Python
Refactoring to Java 8 (Devoxx BE)
Refactoring to Java 8 (Devoxx BE)
Functional Programming in Java 8 - Exploiting Lambdas
Functional Programming in Java 8 - Exploiting Lambdas
Unit testing concurrent code
Unit testing concurrent code
Java 8 Lambda Expressions
Java 8 Lambda Expressions
java sockets
java sockets
3. Объекты, классы и пакеты в Java
3. Объекты, классы и пакеты в Java
Ast transformations
Ast transformations
Scala - where objects and functions meet
Scala - where objects and functions meet
Important java programs(collection+file)
Important java programs(collection+file)
Collections Framework
Collections Framework
Java 7 at SoftShake 2011
Java 7 at SoftShake 2011
Java 7 JUG Summer Camp
Java 7 JUG Summer Camp
Viewers also liked
GroovyConsole
GroovyConsole
Kiyotaka Oku
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
Nobuhiro Sue
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
Yasuharu Nakano
「プログラミングGroovy」Groovyってなんだろ?編
「プログラミングGroovy」Groovyってなんだろ?編
Kazuchika Sekiya
Grails 1.4.0.M1 メモLT
Grails 1.4.0.M1 メモLT
Tsuyoshi Yamamoto
スプリント計画ミーティング
スプリント計画ミーティング
Miho Nagase
Viewers also liked
(6)
GroovyConsole
GroovyConsole
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
「プログラミングGroovy」Groovyってなんだろ?編
「プログラミングGroovy」Groovyってなんだろ?編
Grails 1.4.0.M1 メモLT
Grails 1.4.0.M1 メモLT
スプリント計画ミーティング
スプリント計画ミーティング
Similar to Let's go Developer 2011 sendai Let's go Java Developer (Programming Language Groovy Part)
Softshake 2013: 10 reasons why java developers are jealous of Scala developers
Softshake 2013: 10 reasons why java developers are jealous of Scala developers
Matthew Farwell
Java Collections
Java Collections
rithustutorials
Modify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdf
Modify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdf
arjuncorner565
I need help with this code working Create another project and add yo.pdf
I need help with this code working Create another project and add yo.pdf
fantoosh1
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
JavaCro 2014 Scala and Java EE 7 Development Experiences
JavaCro 2014 Scala and Java EE 7 Development Experiences
Peter Pilgrim
Fee managment system
Fee managment system
fairy9912
An introduction to scala
An introduction to scala
Mohsen Zainalpour
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?
Henri Tremblay
Works Applications Test - Chinmay Chauhan
Works Applications Test - Chinmay Chauhan
Chinmay Chauhan
Elementary Sort
Elementary Sort
Sri Prasanna
A topology of memory leaks on the JVM
A topology of memory leaks on the JVM
Rafael Winterhalter
Array list
Array list
vishal choudhary
Java9 Beyond Modularity - Java 9 más allá de la modularidad
Java9 Beyond Modularity - Java 9 más allá de la modularidad
David Gómez García
Jug java7
Jug java7
Dmitry Buzdin
Hadoop + Clojure
Hadoop + Clojure
elliando dias
EMFPath
EMFPath
mikaelbarbero
Hw09 Hadoop + Clojure
Hw09 Hadoop + Clojure
Cloudera, Inc.
JavaScript Editions ES7, ES8 and ES9 vs V8
JavaScript Editions ES7, ES8 and ES9 vs V8
Rafael Casuso Romate
Collection and framework
Collection and framework
SARAVANAN GOPALAKRISHNAN
Similar to Let's go Developer 2011 sendai Let's go Java Developer (Programming Language Groovy Part)
(20)
Softshake 2013: 10 reasons why java developers are jealous of Scala developers
Softshake 2013: 10 reasons why java developers are jealous of Scala developers
Java Collections
Java Collections
Modify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdf
Modify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdf
I need help with this code working Create another project and add yo.pdf
I need help with this code working Create another project and add yo.pdf
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
JavaCro 2014 Scala and Java EE 7 Development Experiences
JavaCro 2014 Scala and Java EE 7 Development Experiences
Fee managment system
Fee managment system
An introduction to scala
An introduction to scala
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?
Works Applications Test - Chinmay Chauhan
Works Applications Test - Chinmay Chauhan
Elementary Sort
Elementary Sort
A topology of memory leaks on the JVM
A topology of memory leaks on the JVM
Array list
Array list
Java9 Beyond Modularity - Java 9 más allá de la modularidad
Java9 Beyond Modularity - Java 9 más allá de la modularidad
Jug java7
Jug java7
Hadoop + Clojure
Hadoop + Clojure
EMFPath
EMFPath
Hw09 Hadoop + Clojure
Hw09 Hadoop + Clojure
JavaScript Editions ES7, ES8 and ES9 vs V8
JavaScript Editions ES7, ES8 and ES9 vs V8
Collection and framework
Collection and framework
More from Uehara Junji
Use JWT access-token on Grails REST API
Use JWT access-token on Grails REST API
Uehara Junji
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
Uehara Junji
Groovy Shell Scripting 2015
Groovy Shell Scripting 2015
Uehara Junji
Shibuya JVM Groovy 20150418
Shibuya JVM Groovy 20150418
Uehara Junji
Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3
Uehara Junji
Introduce Groovy 2.3 trait
Introduce Groovy 2.3 trait
Uehara Junji
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Uehara Junji
enterprise grails challenge, 2013 Summer
enterprise grails challenge, 2013 Summer
Uehara Junji
New features of Groovy 2.0 and 2.1
New features of Groovy 2.0 and 2.1
Uehara Junji
Groovy kisobenkyoukai20130309
Groovy kisobenkyoukai20130309
Uehara Junji
Read Groovy Compile process(Groovy Benkyoukai 2013)
Read Groovy Compile process(Groovy Benkyoukai 2013)
Uehara Junji
groovy 2.1.0 20130118
groovy 2.1.0 20130118
Uehara Junji
New feature of Groovy2.0 G*Workshop
New feature of Groovy2.0 G*Workshop
Uehara Junji
G* Workshop in fukuoka 20120901
G* Workshop in fukuoka 20120901
Uehara Junji
JJUG CCC 2012 Real World Groovy/Grails
JJUG CCC 2012 Real World Groovy/Grails
Uehara Junji
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Uehara Junji
Java x Groovy: improve your java development life
Java x Groovy: improve your java development life
Uehara Junji
Jggug ws 15th LT 20110224
Jggug ws 15th LT 20110224
Uehara Junji
Easy Going Groovy(Groovyを気軽に使いこなそう)
Easy Going Groovy(Groovyを気軽に使いこなそう)
Uehara Junji
GroovyServ concept, how to use and outline.
GroovyServ concept, how to use and outline.
Uehara Junji
More from Uehara Junji
(20)
Use JWT access-token on Grails REST API
Use JWT access-token on Grails REST API
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
Groovy Shell Scripting 2015
Groovy Shell Scripting 2015
Shibuya JVM Groovy 20150418
Shibuya JVM Groovy 20150418
Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3
Introduce Groovy 2.3 trait
Introduce Groovy 2.3 trait
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
enterprise grails challenge, 2013 Summer
enterprise grails challenge, 2013 Summer
New features of Groovy 2.0 and 2.1
New features of Groovy 2.0 and 2.1
Groovy kisobenkyoukai20130309
Groovy kisobenkyoukai20130309
Read Groovy Compile process(Groovy Benkyoukai 2013)
Read Groovy Compile process(Groovy Benkyoukai 2013)
groovy 2.1.0 20130118
groovy 2.1.0 20130118
New feature of Groovy2.0 G*Workshop
New feature of Groovy2.0 G*Workshop
G* Workshop in fukuoka 20120901
G* Workshop in fukuoka 20120901
JJUG CCC 2012 Real World Groovy/Grails
JJUG CCC 2012 Real World Groovy/Grails
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Java x Groovy: improve your java development life
Java x Groovy: improve your java development life
Jggug ws 15th LT 20110224
Jggug ws 15th LT 20110224
Easy Going Groovy(Groovyを気軽に使いこなそう)
Easy Going Groovy(Groovyを気軽に使いこなそう)
GroovyServ concept, how to use and outline.
GroovyServ concept, how to use and outline.
Recently uploaded
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Antenna Manufacturer Coco
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
Pixlogix Infotech
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
apidays
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
jfdjdjcjdnsjd
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Andrey Devyatkin
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
Recently uploaded
(20)
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language Groovy Part)
1.
Groovy
Java 2011 5 28
2.
Java
2011 05/28 Slide # 2 2011 5 28
3.
Java
2011 05/28 Slide # 3 2011 5 28
4.
$ cat input.txt
That that is is that that is not is not is that it it is $ java WordCount input.txt 1: [That] 2: [not] 2: [it] 4: [that] 6: [is] Java 2011 05/28 Slide # 4 2011 5 28
5.
Java
WordCount:48 Set<Map.Entry<String, Integer>> entrySet = import java.util.Comparator; map.entrySet(); import java.util.HashMap; Object[] list = entrySet.toArray(); import java.util.Map; Comparator comp = new Comparator(){ import java.util.Set; public int compare(Object o1, Object o2) import java.util.List; { import java.util.Arrays; Map.Entry<String, Integer> e1 = import java.io.FileReader; (Map.Entry<String, Integer>) o1; import java.io.BufferedReader; Map.Entry<String, Integer> e2 = import java.io.FileNotFoundException; (Map.Entry<String, Integer>) o2; import java.io.IOException; return e1.getValue() - e2.getValue(); } public class WordCount { }; @SuppressWarnings(value = "unchecked") Arrays.sort(list, comp); public static void main(String[] args) { for (Object it: list) { FileReader fis = null; Map.Entry<String, Integer> entry = BufferedReader br = null; (Map.Entry<String, Integer>)it; try { System.out.println(entry.getValue() + ": HashMap<String, Integer> map = new ["+entry.getKey()+"]"); HashMap<String, Integer>(); } fis = new FileReader(args[0]); } br = new BufferedReader(fis); catch (IOException e) { String line; try {if (br != null) br.close();}catch while ((line = br.readLine()) != null) { (IOException ioe){} for (String it: line.split("s+")) { try {if (fis != null)fis.close();}catch map.put(it, (map.get(it)==null) ? 1 : (IOException ioe){} (map.get(it) + 1)); e.printStackTrace(); } } Java } } } 2011 05/28 Slide # 5 2011 5 28
6.
Groovy
WordCount(9 ) def map = [:].withDefault{0} new File(args[0]).eachLine { it.split(/s+/).each { map[it]++ } } map.entrySet().sort{it.value}.each { println "${it.value}: [${it.key}]" } Java 2011 05/28 Slide # 6 2011 5 28
7.
Java
Set<Map.Entry<String, Integer>> import java.util.Comparator; entrySet = map.entrySet(); import java.util.HashMap; Object[] list = entrySet.toArray(); import java.util.Map; Comparator comp = new Comparator(){ import java.util.Set; public int compare(Object o1, import java.util.List; Object o2) { import java.util.Arrays; Map.Entry<String, Integer> e1 import java.io.FileReader; = (Map.Entry<String, Integer>) o1; import java.io.BufferedReader; Map.Entry<String, Integer> e2 import java.io.FileNotFoundException; = (Map.Entry<String, Integer>) o2; import java.io.IOException; return e1.getValue() - e2.getValue(); public class WordCount { } @SuppressWarnings(value = "unchecked") }; public static void main(String[] args) { Arrays.sort(list, comp); FileReader fis = null; for (Object it: list) { BufferedReader br = null; Map.Entry<String, Integer> entry try { = (Map.Entry<String, Integer>)it; HashMap<String, Integer> map = new System.out.println(entry.getValue HashMap<String, Integer>(); () + ": ["+entry.getKey()+"]"); fis = new FileReader(args[0]); } br = new BufferedReader(fis); } String line; catch (IOException e) { while ((line = br.readLine()) != try {if (br != null) br.close();} null) { catch(IOException ioe){} for (String it: line.split("s try {if (fis != null)fis.close();} +")) { catch(IOException ioe){} map.put(it, (map.get(it) e.printStackTrace(); ==null) ? 1 : (map.get(it) + 1)); } } } Java } } 2011 05/28 Slide # 7 2011 5 28
8.
Groovy
WordCount(9 ) def map = [:].withDefault{0} // value 0 map new File(args[0]).eachLine { // it.split(/s+/).each { // /s+/ map[it]++ // map 1 } } map.entrySet().sort{it.value}.each {// map entrySet value println "${it.value}: [${it.key}]"// key,value } Java 2011 05/28 Slide # 8 2011 5 28
9.
Groovy
WordCount(9 ) def map = [:].withDefault{0} // value 0 map new File(args[0]).eachLine { // it.split(/s+/).each { // /s+/ map[it]++ // map 1 } } map.entrySet().sort{it.value}.each {// map entrySet value println "${it.value}: [${it.key}]"// key,value } Java 2011 05/28 Slide # 9 2011 5 28
10.
Groovy
WordCount(9 ) def map = [:].withDefault{0} // value 0 map new File(args[0]).eachLine { // it.split(/s+/).each { // /s+/ map[it]++ // map 1 } } map.entrySet().sort{it.value}.each {// map entrySet value println "${it.value}: [${it.key}]"// key,value } Java 2011 05/28 Slide # 10 2011 5 28
11.
Groovy
WordCount(9 ) def map = [:].withDefault{0} // value 0 map new File(args[0]).eachLine { // it.split(/s+/).each { // /s+/ map[it]++ // map 1 } } map.entrySet().sort{it.value}.each {// map entrySet value println "${it.value}: [${it.key}]"// key,value } Java 2011 05/28 Slide # 11 2011 5 28
12.
Groovy
WordCount(9 ) def map = [:].withDefault{0} // value 0 map new File(args[0]).eachLine { // it.split(/s+/).each { // /s+/ map[it]++ // map 1 } } map.entrySet().sort{it.value}.each {// map entrySet value println "${it.value}: [${it.key}]"// key,value } Java 2011 05/28 Slide # 12 2011 5 28
13.
Groovy
WordCount(9 ) def map = [:].withDefault{0} // value 0 map new File(args[0]).eachLine { // it.split(/s+/).each { // /s+/ map[it]++ // map 1 } } map.entrySet().sort{it.value}.each {// map entrySet value println "${it.value}: [${it.key}]"// key,value } Java 2011 05/28 Slide # 13 2011 5 28
14.
Groovy
WordCount(9 ) def map = [:].withDefault{0} // value 0 map new File(args[0]).eachLine { // it.split(/s+/).each { // /s+/ map[it]++ // map 1 } } map.entrySet().sort{it.value}.each {// map entrySet value println "${it.value}: [${it.key}]"// key,value } Java 2011 05/28 Slide # 14 2011 5 28
15.
Java
2011 05/28 Slide # 15 2011 5 28
16.
public final class
Person { if (obj == null) private final String firstName; return false; private final String lastName; if (getClass() != obj.getClass()) return false; public Person(String firstName, String lastName) { Person other = (Person) obj; this.firstName = firstName; if (firstName == null) { this.lastName = lastName; if (other.firstName != null) } return false; } else if (!firstName.equals(other.firstName)) public String getFirstName() { return false; return firstName; if (lastName == null) { } if (other.lastName != null) return false; public String getLastName() { } else if (!lastName.equals(other.lastName)) return lastName; return false; } return true; } @Override public int hashCode() { @Override final int prime = 31; public String toString() { int result = 1; return "Person(firstName:" + firstName result = prime * result + ((firstName == null) + ", lastName:" + lastName + ")"; ? 0 : firstName.hashCode()); } result = prime * result + ((lastName == null) ? 0 : lastName.hashCode()); } return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; Java 2011 05/28 Slide # 16 2011 5 28
17.
public final class
Person { if (obj == null) private final String firstName; return false; private final String lastName; if (getClass() != obj.getClass()) return false; public Person(String firstName, String lastName) { Person other = (Person) obj; this.firstName = firstName; if (firstName == null) { this.lastName = lastName; if (other.firstName != null) } return false; } else if (!firstName.equals(other.firstName)) public String getFirstName() { return false; return firstName; if (lastName == null) { } if (other.lastName != null) return false; public String getLastName() { } else if (!lastName.equals(other.lastName)) return lastName; return false; } return true; } @Override public int hashCode() { @Override final int prime = 31; public String toString() { int result = 1; return "Person(firstName:" + firstName result = prime * result + ((firstName == null) + ", lastName:" + lastName + ")"; ? 0 : firstName.hashCode()); } result = prime * result + ((lastName == null) ? 0 : lastName.hashCode()); } return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; Java 2011 05/28 Slide # 16 2011 5 28
18.
Groovy
:4 @Immutable class Person { String firstName, lastName } Java 2011 05/28 Slide # 17 2011 5 28
19.
Groovy
:4 @Immutable class Person { String firstName, lastName } x = new Person("Junji","Uehara") assert x.lastName == "Uehara" x.firstName = "abc" //==> groovy.lang.ReadOnlyPropertyException: Cannot set readonly property: firstName Java for class: Person 2011 05/28 Slide # 17 2011 5 28
20.
Groovy
:4 @Immutable class Person { String firstName, lastName } x = new Person("Junji","Uehara") assert x.lastName == "Uehara" x.firstName = "abc" Java 2011 05/28 Slide # 18 2011 5 28
21.
Groovy
:4 @Immutable class Person { String firstName, lastName } x = new Person("Junji","Uehara") assert x.lastName == "Uehara" x.firstName = "abc" Java 2011 05/28 Slide # 19 2011 5 28
22.
Groovy
:4 @Immutable class Person { String firstName, lastName } x = new Person("Junji","Uehara") assert x.lastName == "Uehara" x.firstName = "abc" Java 2011 05/28 Slide # 20 2011 5 28
23.
Java
2011 05/28 Slide # 21 2011 5 28
24.
Java
2011 05/28 Slide # 21 2011 5 28
25.
Java
2011 05/28 Slide # 21 2011 5 28
26.
Java
2011 05/28 Slide # 21 2011 5 28
27.
Java
2011 05/28 Slide # 21 2011 5 28
28.
DSL
OS PHP Haskel C++ Python C Ruby Java Java + Groovy Java 2011 05/28 Slide # 22 2011 5 28
29.
Groovy
Java Java 2011 05/28 Slide # 23 2011 5 28
Download now