Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 890f3fc

Browse files
Add files via upload
1 parent dd7bb53 commit 890f3fc

File tree

58 files changed

+1686
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+1686
-0
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package StreamCollectors;
2+
3+
import java.util.Arrays;
4+
import java.util.stream.Stream;
5+
import java.util.List;
6+
7+
public class CollectStreamElementsToArray
8+
{
9+
public static void main(String[] args)
10+
{
11+
List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
12+
Stream<Integer> stream = list.stream();
13+
Integer[] evenNumbersArr = stream.filter(i -> i%2 == 0).toArray(Integer[]::new);
14+
for(Integer num:evenNumbersArr)
15+
{
16+
System.out.print(num+" ");
17+
}
18+
}
19+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package StreamCollectors;
2+
3+
import java.util.LinkedHashMap;
4+
import java.util.Map;
5+
import java.util.stream.Collectors;
6+
import java.util.stream.Stream;
7+
8+
class Student
9+
{
10+
private int ID;
11+
private String Name;
12+
Student(int ID,String Name)
13+
{
14+
this.ID=ID;
15+
this.Name=Name;
16+
}
17+
public int getID()
18+
{
19+
return ID;
20+
}
21+
public void setID(int iD)
22+
{
23+
ID = iD;
24+
}
25+
public String getName()
26+
{
27+
return Name;
28+
}
29+
public void setName(String name)
30+
{
31+
Name = name;
32+
}
33+
}
34+
35+
public class CollectStreamElementsToMap
36+
{
37+
public static void main(String[] args)
38+
{
39+
Stream<Student> stream = Stream.of(new Student(1,"Ram"),new Student(2,"Arjun"),new Student(3,"Kavi"),new Student(4,"Sanju"),new Student(5,"Ajay"));
40+
Map<Integer,String> map = stream.collect(Collectors.toMap(Student::getID,Student::getName));
41+
42+
System.out.println("Original Value:");
43+
for(Map.Entry<Integer,String> m:map.entrySet())
44+
{
45+
System.out.println(m.getKey()+" "+m.getValue());
46+
}
47+
48+
//sort map based on key
49+
Map<Integer,String> result1 = new LinkedHashMap<>();
50+
map.entrySet().stream()
51+
.sorted(Map.Entry.comparingByKey())
52+
.forEachOrdered(x -> result1.put(x.getKey(), x.getValue()));
53+
System.out.println("Sort By Key:" + result1);
54+
55+
//sort map based on Value
56+
Map<Integer,String> result2 = new LinkedHashMap<>();
57+
map.entrySet().stream()
58+
.sorted(Map.Entry.comparingByValue())
59+
.forEachOrdered(x -> result2.put(x.getKey(), x.getValue()));
60+
System.out.println("Sort By Value:" + result2);
61+
}
62+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package StreamCollectors;
2+
3+
import java.util.Arrays;
4+
import java.util.Collections;
5+
import java.util.List;
6+
import java.util.LinkedHashSet;
7+
import java.util.HashSet;
8+
import java.util.TreeSet;
9+
import java.util.Set;
10+
import java.util.stream.Collectors;
11+
import java.util.stream.Stream;
12+
13+
14+
public class CollectStreamElementsToSet
15+
{
16+
public static void main(String[] args)
17+
{
18+
19+
//convert stream to set
20+
List<Integer> list = Arrays.asList(1,2,3,4,5,4,5,8,9,10);
21+
Stream<Integer> stream = list.stream();
22+
23+
Set<Integer> set = stream.collect(Collectors.toSet());
24+
System.out.println(set);
25+
26+
//convert stream to an array and them array into set
27+
List<Integer> list1 = Arrays.asList(1,2,4,3,5,4,5,8,8,7);
28+
Stream<Integer> stream1 = list1.stream();
29+
30+
Integer[] arr = stream1.toArray(Integer[]::new);
31+
32+
//random order set
33+
Set<Integer> set1 = new HashSet<>();
34+
Collections.addAll(set1, arr);
35+
System.out.println(set1);
36+
37+
//insertion order set
38+
Set<Integer> set2 = new LinkedHashSet<>();
39+
Collections.addAll(set2, arr);
40+
System.out.println(set2);
41+
42+
//sorted order set
43+
Set<Integer> set3 = new TreeSet<>();
44+
Collections.addAll(set3, arr);
45+
System.out.println(set3);
46+
}
47+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package StreamCollectors;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
import java.util.stream.Stream;
6+
import java.util.stream.Collectors;
7+
8+
public class CollectsreamElementsToList
9+
{
10+
public static void main(String[] args)
11+
{
12+
List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
13+
Stream<Integer> stream = list.stream();
14+
15+
List<Integer> evenNumbersList = stream.collect(Collectors.toList());
16+
System.out.print(evenNumbersList);
17+
}
18+
}

‎StreamCollectors/SortingStream.java‎

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package StreamCollectors;
2+
3+
import java.util.Arrays;
4+
import java.util.Comparator;
5+
import java.util.List;
6+
import java.util.stream.Stream;
7+
8+
public class SortingStream
9+
{
10+
public static void main(String[] args)
11+
{
12+
//convert stream into set
13+
List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
14+
Stream<Integer> stream1 = list.stream();
15+
Stream<Integer> stream2 = list.stream();
16+
17+
//ascending sort
18+
stream1.sorted().forEach(e -> System.out.print(e+" "));
19+
System.out.println();
20+
21+
//descending sort
22+
stream2.sorted(Comparator.reverseOrder()).forEach(e -> System.out.print(e+" "));
23+
System.out.println();
24+
}
25+
}

‎StreamExamples/DistinctByKeys.java‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package StreamExamples;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
import java.util.Map;
6+
import java.util.concurrent.ConcurrentHashMap;
7+
import java.util.function.Function;
8+
import java.util.function.Predicate;
9+
import java.util.stream.Collectors;
10+
import java.util.stream.Stream;
11+
import StudentClass.Student;
12+
13+
public class DistinctByKeys
14+
{
15+
public static void main(String[] args)
16+
{
17+
Stream.of(new Student(1,"Ram"),new Student(2,"Arjun"),new Student(3,"Kavi"),new Student(4,"Sanju"),new Student(5,"Ajay"))
18+
.filter(distinctByKeys(Student::getID, Student::getName))
19+
.collect(Collectors.toList()).forEach(System.out::println);
20+
System.out.println();
21+
}
22+
23+
private static <T> Predicate<T> distinctByKeys(Function<? super T, ?>... keyExtractors)
24+
{
25+
final Map<List<?>, Boolean> seen = new ConcurrentHashMap<>();
26+
return t ->
27+
{
28+
final List<?> keys = Arrays.stream(keyExtractors)
29+
.map(ke -> ke.apply(t))
30+
.collect(Collectors.toList());
31+
return seen.putIfAbsent(keys, Boolean.TRUE) == null;
32+
};
33+
}
34+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package StreamExamples;
2+
3+
import java.util.Map;
4+
import java.util.concurrent.ConcurrentHashMap;
5+
import java.util.function.Function;
6+
import java.util.function.Predicate;
7+
import java.util.stream.Collectors;
8+
import java.util.stream.Stream;
9+
import StudentClass.CustomKey;
10+
import StudentClass.Student;
11+
12+
public class DistinctByMultipleProperties
13+
{
14+
public static void main(String[] args)
15+
{
16+
Stream.of(new Student(1,"Ram"),new Student(2,"Arjun"),new Student(3,"Kavi"),new Student(4,"Sanju"),new Student(5,"Ajay"))
17+
.filter(distinctByKey(CustomKey::new))
18+
.collect(Collectors.toList()).forEach(System.out::println);
19+
System.out.println();
20+
21+
}
22+
public static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor)
23+
{
24+
Map<Object, Boolean> seen = new ConcurrentHashMap<>();
25+
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
26+
}
27+
}

‎StreamExamples/FindLastElement.java‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package StreamExamples;
2+
3+
import java.util.Arrays;
4+
import java.util.stream.Stream;
5+
6+
public class FindLastElement
7+
{
8+
public static void main(String[] args)
9+
{
10+
11+
//using stream.reduce()
12+
Stream<Integer> stream1 = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9).stream();
13+
Integer lastElement1 = stream1.reduce((first, second) -> second).orElse(-1);
14+
System.out.println(lastElement1);
15+
16+
//or
17+
18+
Stream<Integer> emptyStream = Stream.empty();
19+
Integer lastElement2 = emptyStream.reduce((first, second) -> second)
20+
.orElseThrow(() -> new IllegalStateException("no last element"));
21+
System.out.println(lastElement2);
22+
23+
}
24+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package StreamExamples;
2+
3+
import java.util.stream.Stream;
4+
5+
public class FixedLengthStream
6+
{
7+
public static void main(String[] args)
8+
{
9+
Stream.Builder<Integer> streamBuilder = Stream.builder();
10+
streamBuilder.accept(1);
11+
streamBuilder.accept(2);
12+
streamBuilder.accept(3);
13+
streamBuilder.accept(4);
14+
streamBuilder.accept(5);
15+
streamBuilder.build().forEach(e->System.out.print(e+" "));
16+
}
17+
}

‎StreamExamples/InfiniteStream.java‎

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package StreamExamples;
2+
3+
import java.util.List;
4+
import java.util.Random;
5+
import java.util.stream.Collectors;
6+
import java.util.stream.Stream;
7+
import StudentClass.Student;
8+
9+
public class InfiniteStream
10+
{
11+
public static void main(String[] args)
12+
{
13+
14+
//Infinite stream of random numbers
15+
List<Integer> randomNumbers = Stream.generate(() -> (new Random()).nextInt(100))
16+
.limit(10).collect(Collectors.toList());
17+
System.out.println(randomNumbers);
18+
19+
//infinite stream of Custom Objects
20+
List<Student> students = Stream.generate(Student::create)
21+
.limit(5).collect(Collectors.toList());
22+
for(Student student:students)
23+
{
24+
System.out.println("Student ID : "+student.getID()+" , Student Name : "+student.getName());
25+
}
26+
}
27+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /