实体信息:
public class Product {
private String goods_status ;
private String goods_name ;
private String goods_cover ;
private String goods_price ;
private String goods_id ;
private String goods_discount ;
private String classify_name ;
private String classify_id ;
private String classify_status ;
public Product() {
}
public Product(String goods_status, String goods_name, String goods_cover, String goods_price, String goods_id, String goods_discount, String classify_name, String classify_id, String classify_status) {
this.goods_status = goods_status;
this.goods_name = goods_name;
this.goods_cover = goods_cover;
this.goods_price = goods_price;
this.goods_id = goods_id;
this.goods_discount = goods_discount;
this.classify_name = classify_name;
this.classify_id = classify_id;
this.classify_status = classify_status;
}
public String getClassify_name() {
return classify_name;
}
public void setClassify_name(String classify_name) {
this.classify_name = classify_name;
}
public String getClassify_id() {
return classify_id;
}
public void setClassify_id(String classify_id) {
this.classify_id = classify_id;
}
public String getClassify_status() {
return classify_status;
}
public void setClassify_status(String classify_status) {
this.classify_status = classify_status;
}
public String getGoods_status() {
return goods_status;
}
public void setGoods_status(String goods_status) {
this.goods_status = goods_status;
}
public String getGoods_name() {
return goods_name;
}
public void setGoods_name(String goods_name) {
this.goods_name = goods_name;
}
public String getGoods_cover() {
return goods_cover;
}
public void setGoods_cover(String goods_cover) {
this.goods_cover = goods_cover;
}
public String getGoods_price() {
return goods_price;
}
public void setGoods_price(String goods_price) {
this.goods_price = goods_price;
}
public String getGoods_id() {
return goods_id;
}
public void setGoods_id(String goods_id) {
this.goods_id = goods_id;
}
public String getGoods_discount() {
return goods_discount;
}
public void setGoods_discount(String goods_discount) {
this.goods_discount = goods_discount;
}
@Override
public String toString() {
return "Product{" +
"goods_status='" + goods_status + '\'' +
", goods_name='" + goods_name + '\'' +
", goods_cover='" + goods_cover + '\'' +
", goods_price='" + goods_price + '\'' +
", goods_id='" + goods_id + '\'' +
", goods_discount='" + goods_discount + '\'' +
", classify_name='" + classify_name + '\'' +
", classify_id='" + classify_id + '\'' +
", classify_status='" + classify_status + '\'' +
'}';
}
}
具体的demo,注释都在代码里面
// Stream的使用
/** 其中map 和 flatMap 稍后细讲 **/
public class Lambda3 {
public static List<Integer> createListByInteger() {
List<Integer> list = Lists.newArrayList(1, 2, 32, 2, 4, 5, 6, 7, 3, 7, 10, 11, 4);
return list;
}
public static List<String> createListByString() {
List<String> list = Lists.newArrayList("1", "2", "32", "3", "4", "5", "6", "7", "8", "9", "10", "11", "0");
return list;
}
public static List<String> createListByCharacter() {
List<String> list = Lists.newArrayList("a", "d", "a", "c", "f", "e", "t", "l");
return list;
}
public static List<Product> createProduct() {
List<Product> list = new ArrayList<Product>();
String str = "[\n" +
" {\n" +
" \"goods_status\":\"正常\",\n" +
" \"goods_name\":\"鲜淮山炒黑木耳\",\n" +
" \"goods_cover\":\"https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1405304736,1966318522&fm=26&gp=0.jpg\",\n" +
" \"classify_status\":\"正常\",\n" +
" \"goods_price\":28,\n" +
" \"classify_name\":\"每日抢购\",\n" +
" \"classify_id\":\"1323454502753538048\",\n" +
" \"goods_id\":\"1317807825745088512\",\n" +
" \"goods_discount\":0\n" +
" },\n" +
" {\n" +
" \"goods_status\":\"正常\",\n" +
" \"goods_name\":\"玉米松子\",\n" +
" \"goods_cover\":\"https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1405304736,1966318522&fm=26&gp=0.jpg\",\n" +
" \"classify_status\":\"正常\",\n" +
" \"goods_price\":35,\n" +
" \"classify_name\":\"每日抢购\",\n" +
" \"classify_id\":\"1323454502753538048\",\n" +
" \"goods_id\":\"1317807947237298176\",\n" +
" \"goods_discount\":0\n" +
" },\n" +
" {\n" +
" \"goods_status\":\"正常\",\n" +
" \"goods_name\":\"腊八豆蒸排骨\",\n" +
" \"goods_cover\":\"https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1405304736,1966318522&fm=26&gp=0.jpg\",\n" +
" \"classify_status\":\"正常\",\n" +
" \"goods_price\":18,\n" +
" \"classify_name\":\"每日抢购\",\n" +
" \"classify_id\":\"1323454502753538048\",\n" +
" \"goods_id\":\"1317807639778037760\",\n" +
" \"goods_discount\":0\n" +
" },\n" +
" {\n" +
" \"goods_status\":\"正常\",\n" +
" \"goods_name\":\"蒜蓉粉丝蒸娃娃菜\",\n" +
" \"goods_cover\":\"https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1405304736,1966318522&fm=26&gp=0.jpg\",\n" +
" \"classify_status\":\"正常\",\n" +
" \"goods_price\":28,\n" +
" \"classify_name\":\"优先新品\",\n" +
" \"classify_id\":\"1323454357907443712\",\n" +
" \"goods_id\":\"1317807566960726016\",\n" +
" \"goods_discount\":0\n" +
" },\n" +
" {\n" +
" \"goods_status\":\"正常\",\n" +
" \"goods_name\":\"湘水肉沫蒸蛋\",\n" +
" \"goods_cover\":\"https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1405304736,1966318522&fm=26&gp=0.jpg\",\n" +
" \"classify_status\":\"正常\",\n" +
" \"goods_price\":33,\n" +
" \"classify_name\":\"优先新品\",\n" +
" \"classify_id\":\"1323454357907443712\",\n" +
" \"goods_id\":\"1317807434039037952\",\n" +
" \"goods_discount\":0\n" +
" },\n" +
" {\n" +
" \"goods_status\":\"正常\",\n" +
" \"goods_name\":\"紫苏土豆牛肉碎\",\n" +
" \"goods_cover\":\"https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1405304736,1966318522&fm=26&gp=0.jpg\",\n" +
" \"classify_status\":\"正常\",\n" +
" \"goods_price\":70,\n" +
" \"classify_name\":\"优先新品\",\n" +
" \"classify_id\":\"1323454357907443712\",\n" +
" \"goods_id\":\"1317807129075388416\",\n" +
" \"goods_discount\":0\n" +
" },\n" +
" {\n" +
" \"goods_status\":\"正常\",\n" +
" \"goods_name\":\"青豆炒肉泥\",\n" +
" \"goods_cover\":\"https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1405304736,1966318522&fm=26&gp=0.jpg\",\n" +
" \"classify_status\":\"正常\",\n" +
" \"goods_price\":58,\n" +
" \"classify_name\":\"优先新品\",\n" +
" \"classify_id\":\"1323454357907443712\",\n" +
" \"goods_id\":\"1317806865106866176\",\n" +
" \"goods_discount\":0\n" +
" },\n" +
" {\n" +
" \"goods_status\":\"正常\",\n" +
" \"goods_name\":\"吮指青尾鱼\",\n" +
" \"goods_cover\":\"https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1405304736,1966318522&fm=26&gp=0.jpg\",\n" +
" \"classify_status\":\"正常\",\n" +
" \"goods_price\":128,\n" +
" \"classify_name\":\"热销商品\",\n" +
" \"classify_id\":\"1323454099097915392\",\n" +
" \"goods_id\":\"1317805910818820096\",\n" +
" \"goods_discount\":0\n" +
" },\n" +
" {\n" +
" \"goods_status\":\"正常\",\n" +
" \"goods_name\":\"香爆酱牛肉\",\n" +
" \"goods_cover\":\"https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1405304736,1966318522&fm=26&gp=0.jpg\",\n" +
" \"classify_status\":\"正常\",\n" +
" \"goods_price\":88,\n" +
" \"classify_name\":\"热销商品\",\n" +
" \"classify_id\":\"1323454099097915392\",\n" +
" \"goods_id\":\"1317805307065536512\",\n" +
" \"goods_discount\":0\n" +
" },\n" +
" {\n" +
" \"goods_status\":\"正常\",\n" +
" \"goods_name\":\"清远鸡\",\n" +
" \"goods_cover\":\"https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1405304736,1966318522&fm=26&gp=0.jpg\",\n" +
" \"classify_status\":\"正常\",\n" +
" \"goods_price\":98,\n" +
" \"classify_name\":\"热销商品\",\n" +
" \"classify_id\":\"1323454099097915392\",\n" +
" \"goods_id\":\"1317804058198937600\",\n" +
" \"goods_discount\":0\n" +
" }\n" +
"]";
JSONArray productArray = JSONArray.parseArray(str);
for (int i = 0; i < productArray.size(); i++) {
Product product = new Product();
JSONObject productJson = productArray.getJSONObject(i);
product = JSON.parseObject(productJson.toJSONString(), Product.class);
list.add(product);
}
return list;
}
public static void stream() {
List<Integer> list = createListByInteger();
// forEarch 遍历
list.parallelStream().forEach(item -> {
System.out.println(item);
});
System.out.println("###########################################");
list.parallelStream().forEach(System.out::println);
System.out.println("*******************************************");
// collect 将流转换成其他的形式 常用的List,Set、Map、Collection
// 转为 set
Set<Integer> set = list.parallelStream().collect(Collectors.toSet());
System.out.println("set:\t" + set);
System.out.println("###########################################");
// 转为 map
Map<Integer, Integer> map = list.parallelStream().collect(Collectors.toMap(item -> item, item -> item, (k1, k2) -> k1));
System.out.println("map:\t" + map);
System.out.println("*******************************************");
// 过滤操作 filter
List<Integer> list1 = list.stream().filter(item -> item % 2 == 0).collect(Collectors.toList());
System.out.println(list1);
System.out.println("*******************************************");
// 去重 distinct
List<Integer> list2 = list.stream().distinct().collect(Collectors.toList());
System.out.println(list2);
System.out.println("*******************************************");
// 取出前几个元素 limit
List<Integer> list3 = list.stream().limit(5).collect(Collectors.toList());
System.out.println(list3);
System.out.println("*******************************************");
// 跳过前几个元素
List<Integer> list4 = list.stream().skip(5).collect(Collectors.toList());
System.out.println(list4);
System.out.println("*******************************************");
// 排序 sorted
// 自然排序
List<Integer> list5 = list.stream().sorted().collect(Collectors.toList());
System.out.println(list5);
System.out.println("###########################################");
// 倒序
List<Integer> list6 = list.stream().sorted((a1, a2) -> a2.compareTo(a1)).collect(Collectors.toList());
System.out.println(list6);
System.out.println("*******************************************");
// 统计 count / max / min
Long count = list.stream().count();
Double max = list.stream().max((a1, a2) -> a1.compareTo(a2)).get().doubleValue();
Double min = list.stream().min((a1, a2) -> a1.compareTo(a2)).get().doubleValue();
System.out.println("count ======>" + count);
System.out.println("max ======>" + max);
System.out.println("min ======>" + min);
System.out.println("*******************************************");
// 终止操作
// anyMatch() 检查是否有至少一个能够满足条件
Boolean flag = list.parallelStream().anyMatch(item -> item > 3);
System.out.println(flag);
System.out.println("*******************************************");
// allMatch() 所有条件都满足
Boolean flag1 = list.parallelStream().allMatch(item -> item > 3);
System.out.println(flag1);
System.out.println("*******************************************");
// 没有条件满足
Boolean flag2 = list.parallelStream().noneMatch(item -> item > 3);
System.out.println(flag2);
System.out.println("*******************************************");
// 返回第一个 findFirst
Optional<Integer> optional = list.parallelStream().findFirst();
System.out.println(optional);
System.out.println("*******************************************");
// 返回任意一个 findAny()
Optional<Integer> optional1 = list.parallelStream().findAny();
System.out.println(optional1);
// 中间操作 map() 将流中的元素映射到另一个流中
List<Product> productList = createProduct();
// 让list转为map
// 原始的方式
Map<String, Product> map1 = new HashMap<String, Product>();
for (int i = 0; i < productList.size(); i++) {
String goods_id = productList.get(i).getGoods_id();
map1.put(goods_id, productList.get(i));
}
System.out.println(map1);
System.out.println("###########################################");
// lambda 表达式的方式
Map<String, Product> map2 = productList.stream().map(item -> item).collect(Collectors.toMap(item -> item.getGoods_id(), item -> item, (k1, k2) -> k1));
System.out.println(map2);
/** 其中map 和 flatMap 稍后细讲 **/
}
public static void main(String[] args) {
stream();
}
欢迎关注我的微信公众号,更多内容将在微信公众号中发布: