We all know about the use of For loop and for each loop that is used to iterate all elements in list or collection but some time in case of n numbers of items loop traverse till nth item that is time consuming but after java 8 we have some strong and faster functional operations over collections named Stream. Stream is basically provide fast operation on collections like to filter or search some data.
Here we have an example to search a assest location "delhi" over collection using for loop and using stream.
For loop to find the required data :
public class Asset implements Serializable {
public String assestType;
public String assestLocation;
public String assestValue;
public String getAssestLocation() {
return assestLocation;
}
public String getAssestValue() {
return assestValue;
}
public void setAssestValue(String assestValue) {
this.assestValue = assestValue;
}
public void setAssestLocation(String assestLocation) {
this.assestLocation = assestLocation;
}
public String getAssestType() {
return assestType;
}
public void setAssestType(String assestType) {
this.assestType = assestType;
}
}
Now using for loop to find item :
public List<Asset> getAllAssests() {
List<Asset> result = new ArrayList<>();
for (Asset assest : assets) {
if (assest.getAssestLocation().contains("delhi")) {
result.add(assest);
}
}
return result;
}
now using Stream Api :
public List<Asset> getAllAssests() {
return assest.stream()
.filter(assest -> assest.getTags().contains("delhi"))
.collect(Collectors.toList());
}
using filter method of stream we can easily filter out required item.
0 Comment(s)