fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6. import java.util.function.Predicate;
  7. import java.util.stream.Collectors;
  8.  
  9. /* Name of the class has to be "Main" only if the class is public. */
  10. class Ideone
  11. {
  12.  
  13.  
  14. static class StockUtil {
  15.  
  16. public static Predicate<Stock> isLessThanLimit(Double limit) {
  17. return s -> s.tick < limit;
  18. }
  19.  
  20. public static String toUpperCase(String stock) {
  21. return stock.toUpperCase();
  22. }
  23. }
  24.  
  25. public static void main (String[] args) throws java.lang.Exception {
  26. List<Stock> stocks = new ArrayList<>(Arrays.asList(new Stock("AMZ", 312.0),
  27. new Stock("Yahoo", 212.0),
  28. new Stock("ORCL", 512.0),
  29. new Stock("SAP", 112.0),
  30. new Stock("Google", 412.0),
  31. new Stock("FB", 12.0),
  32. new Stock("TWT", 315.0)));
  33.  
  34.  
  35. //print list of stock names below 400 in uppercase
  36. System.out.println(stocks.stream().filter(StockUtil.isLessThanLimit(400.0))
  37. .map(Stock::getSymbol)
  38. .map(StockUtil::toUpperCase)
  39. .collect(Collectors.toList())
  40. );
  41. }
  42.  
  43. static class Stock {
  44.  
  45. String symbol;
  46.  
  47. double tick;
  48.  
  49. public Stock(String symbol, double tick) {
  50. this.symbol = symbol;
  51. this.tick = tick;
  52. }
  53.  
  54. public String getSymbol() {
  55. return symbol;
  56. }
  57.  
  58. public void setSymbol(String symbol) {
  59. this.symbol = symbol;
  60. }
  61.  
  62. public double getTick() {
  63. return tick;
  64. }
  65.  
  66. public void setTick(double tick) {
  67. this.tick = tick;
  68. }
  69. }
  70.  
  71. }
Success #stdin #stdout 0.09s 711680KB
stdin
Standard input is empty
stdout
[AMZ, YAHOO, SAP, FB, TWT]