Skip to content

Commit aabf64f

Browse files
committed
Added streams api questions
1 parent c84ae80 commit aabf64f

File tree

2 files changed

+126
-0
lines changed

2 files changed

+126
-0
lines changed

src/me/ramswaroop/dynamicprogramming/FibonacciNumbers.java

+1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public static int[] getFirstKFibonacciNumbers(int k) {
3636
}
3737

3838
public static void main(String a[]) {
39+
out.println(Arrays.toString(getFirstKFibonacciNumbers(0)));
3940
out.println(Arrays.toString(getFirstKFibonacciNumbers(10)));
4041
out.println(Arrays.toString(getFirstKFibonacciNumbers(46)));
4142
}

src/me/ramswaroop/java8/Streams.java

+125
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
package me.ramswaroop.java8;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
6+
import static java.util.Comparator.comparing;
7+
import static java.util.stream.Collectors.toList;
8+
9+
/**
10+
* @author ramswaroop
11+
* @version 02/02/2017
12+
*/
13+
class Trader {
14+
15+
private final String name;
16+
private final String city;
17+
18+
public Trader(String n, String c) {
19+
this.name = n;
20+
this.city = c;
21+
}
22+
23+
public String getName() {
24+
return this.name;
25+
}
26+
27+
public String getCity() {
28+
return this.city;
29+
}
30+
31+
public String toString() {
32+
return "Trader:" + this.name + " in " + this.city;
33+
}
34+
}
35+
36+
class Transaction {
37+
private final Trader trader;
38+
private final int year;
39+
private final int value;
40+
41+
public Transaction(Trader trader, int year, int value) {
42+
this.trader = trader;
43+
this.year = year;
44+
this.value = value;
45+
}
46+
47+
public Trader getTrader() {
48+
return this.trader;
49+
}
50+
51+
public int getYear() {
52+
return this.year;
53+
}
54+
55+
public int getValue() {
56+
return this.value;
57+
}
58+
59+
public String toString() {
60+
return "{" + this.trader + ", " +
61+
"year: " + this.year + ", " +
62+
"value:" + this.value + "}";
63+
}
64+
}
65+
66+
public class Streams {
67+
68+
static final Trader raoul = new Trader("Raoul", "Cambridge");
69+
static final Trader mario = new Trader("Mario", "Milan");
70+
static final Trader alan = new Trader("Alan", "Cambridge");
71+
static final Trader brian = new Trader("Brian", "Cambridge");
72+
73+
static final List<Transaction> transactions = Arrays.asList(
74+
new Transaction(brian, 2011, 300),
75+
new Transaction(raoul, 2012, 1000),
76+
new Transaction(raoul, 2011, 400),
77+
new Transaction(mario, 2012, 710),
78+
new Transaction(mario, 2012, 700),
79+
new Transaction(alan, 2012, 950)
80+
);
81+
82+
public static List<Transaction> getTransactionsIn2011SortedByValue() {
83+
return transactions.stream()
84+
.filter(t -> t.getYear() == 2011)
85+
.sorted(comparing(Transaction::getValue))
86+
.collect(toList());
87+
}
88+
89+
public static List<String> findUniqueCities() {
90+
return transactions.stream()
91+
.map(t -> t.getTrader().getCity())
92+
.distinct()
93+
.collect(toList());
94+
}
95+
96+
public static List<Trader> getAllTradersFromCambridgeAndSortByName() {
97+
return transactions.stream()
98+
.map(Transaction::getTrader)
99+
.filter(traders -> traders.getCity().equals("Cambridge"))
100+
.distinct()
101+
.sorted(comparing(Trader::getName))
102+
.collect(toList());
103+
}
104+
105+
public static List<String> getAllTraderNamesAndSortByName() {
106+
return transactions.stream()
107+
.map(t -> t.getTrader().getName())
108+
.distinct()
109+
.sorted()
110+
.collect(toList());
111+
}
112+
113+
public static boolean areAnyTradersFromMilan() {
114+
return transactions.stream()
115+
.anyMatch(t -> t.getTrader().getCity().equals("Milan"));
116+
}
117+
118+
public static void main(String[] a) {
119+
System.out.println(getTransactionsIn2011SortedByValue());
120+
System.out.println(findUniqueCities());
121+
System.out.println(getAllTradersFromCambridgeAndSortByName());
122+
System.out.println(getAllTraderNamesAndSortByName());
123+
System.out.println(areAnyTradersFromMilan());
124+
}
125+
}

0 commit comments

Comments
 (0)