/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.function.Predicate;
import java.util.stream.Collectors;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
static class StockUtil {
public static Predicate
<Stock
> isLessThanLimit
(Double limit
) { return s -> s.tick < limit;
}
return stock.toUpperCase();
}
}
List
<Stock
> stocks
= new ArrayList
<>(Arrays.
asList(new Stock
("AMZ",
312.0),
new Stock("Yahoo", 212.0),
new Stock("ORCL", 512.0),
new Stock("SAP", 112.0),
new Stock("Google", 412.0),
new Stock("FB", 12.0),
new Stock("TWT", 315.0)));
//print list of stock names below 400 in uppercase
System.
out.
println(stocks.
stream().
filter(StockUtil.
isLessThanLimit(400.0)) .map(Stock::getSymbol)
.map(StockUtil::toUpperCase)
.collect(Collectors.toList())
);
}
static class Stock {
double tick;
public Stock
(String symbol,
double tick
) { this.symbol = symbol;
this.tick = tick;
}
return symbol;
}
public void setSymbol
(String symbol
) { this.symbol = symbol;
}
public double getTick() {
return tick;
}
public void setTick(double tick) {
this.tick = tick;
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuZnVuY3Rpb24uUHJlZGljYXRlOwppbXBvcnQgamF2YS51dGlsLnN0cmVhbS5Db2xsZWN0b3JzOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CgoKICAgIHN0YXRpYyBjbGFzcyBTdG9ja1V0aWwgewoKICAgICAgICBwdWJsaWMgc3RhdGljIFByZWRpY2F0ZTxTdG9jaz4gaXNMZXNzVGhhbkxpbWl0KERvdWJsZSBsaW1pdCkgewogICAgICAgICAgICByZXR1cm4gcyAtPiBzLnRpY2sgPCBsaW1pdDsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvVXBwZXJDYXNlKFN0cmluZyBzdG9jaykgewogICAgICAgICAgICByZXR1cm4gc3RvY2sudG9VcHBlckNhc2UoKTsKICAgICAgICB9CiAgICB9CgogIAlwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24gewogICAgICAgIExpc3Q8U3RvY2s+IHN0b2NrcyA9IG5ldyBBcnJheUxpc3Q8PihBcnJheXMuYXNMaXN0KG5ldyBTdG9jaygiQU1aIiwgMzEyLjApLAogICAgICAgICAgICAgICAgbmV3IFN0b2NrKCJZYWhvbyIsIDIxMi4wKSwKICAgICAgICAgICAgICAgIG5ldyBTdG9jaygiT1JDTCIsIDUxMi4wKSwKICAgICAgICAgICAgICAgIG5ldyBTdG9jaygiU0FQIiwgMTEyLjApLAogICAgICAgICAgICAgICAgbmV3IFN0b2NrKCJHb29nbGUiLCA0MTIuMCksCiAgICAgICAgICAgICAgICBuZXcgU3RvY2soIkZCIiwgMTIuMCksCiAgICAgICAgICAgICAgICBuZXcgU3RvY2soIlRXVCIsIDMxNS4wKSkpOwoKCiAgICAgICAgLy9wcmludCBsaXN0IG9mIHN0b2NrIG5hbWVzIGJlbG93IDQwMCBpbiB1cHBlcmNhc2UKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc3RvY2tzLnN0cmVhbSgpLmZpbHRlcihTdG9ja1V0aWwuaXNMZXNzVGhhbkxpbWl0KDQwMC4wKSkKICAgICAgICAgICAgICAgIC5tYXAoU3RvY2s6OmdldFN5bWJvbCkKICAgICAgICAgICAgICAgIC5tYXAoU3RvY2tVdGlsOjp0b1VwcGVyQ2FzZSkKICAgICAgICAgICAgICAgIC5jb2xsZWN0KENvbGxlY3RvcnMudG9MaXN0KCkpCiAgICAgICAgKTsKICAgIH0KCiAgICBzdGF0aWMgY2xhc3MgU3RvY2sgewoKICAgICAgICBTdHJpbmcgc3ltYm9sOwoKICAgICAgICBkb3VibGUgdGljazsKCiAgICAgICAgcHVibGljIFN0b2NrKFN0cmluZyBzeW1ib2wsIGRvdWJsZSB0aWNrKSB7CiAgICAgICAgICAgIHRoaXMuc3ltYm9sID0gc3ltYm9sOwogICAgICAgICAgICB0aGlzLnRpY2sgPSB0aWNrOwogICAgICAgIH0KCiAgICAgICAgcHVibGljIFN0cmluZyBnZXRTeW1ib2woKSB7CiAgICAgICAgICAgIHJldHVybiBzeW1ib2w7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgdm9pZCBzZXRTeW1ib2woU3RyaW5nIHN5bWJvbCkgewogICAgICAgICAgICB0aGlzLnN5bWJvbCA9IHN5bWJvbDsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBkb3VibGUgZ2V0VGljaygpIHsKICAgICAgICAgICAgcmV0dXJuIHRpY2s7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgdm9pZCBzZXRUaWNrKGRvdWJsZSB0aWNrKSB7CiAgICAgICAgICAgIHRoaXMudGljayA9IHRpY2s7CiAgICAgICAgfQogICAgfQoKfQ==