java json hashmap_java8 - Stream(List、Map、JSONArray、HashMap等)

生成流的方式有两种:

stream() − 串行

parallelStream() − 并行

foreach - 循环

@Data

class Student {

private String name;

private Integer cardNo;

}

private void listStudent() {

List names = Arrays.asList("Li", "Lin", "Xiao Bai");

List studentList = new ArrayList<>();

names.forEach(i->addStudent(studentList, i));

studentList.forEach(i->System.out.println("姓名:" + i.getName() + ",学号:" + i.getCardNo()));

}

private void addStudent(List studentList, String name) {

Student student = new Student();

int cardNo = UUID.randomUUID().toString().hashCode();

student.setCardNo(cardNo<0?-cardNo:cardNo);

student.setName(name);

studentList.add(student);

}

map - 元素处理

private void mapStudent() {

String jsonStr = "[{\"name\":\"Li\",\"cardNo\":\"1563729027\"},{\"name\":\"Lin\",\"cardNo\":\"625188409\"},{\"name\":\"Xiao Bai\",\"cardNo\":\"354972723\"}]";

JSONArray jsonArray = JSON.parseArray(jsonStr);

String names = jsonArray.stream().map(i -> ((JSONObject) i).getString("name")).collect(Collectors.joining(","));

System.out.println(names);

}

filter - 条件过滤

private void filterDemo() {

List list = Arrays.asList(1,2,3,4,5);

long count = list.stream().filter(i -> i % 2 == 0).count();

System.out.println("偶数个数:" + count);

}

limit - 条数限定

private void limitDemo() {

// 获取10以内5个不重复的随机数

new Random().ints(0, 10).distinct().limit(5).forEach(System.out::println);

}

sort - 排序

@Data

class Student {

private String name;

private Integer cardNo;

Student(){

}

Student(String name, Integer cardNo) {

this.name = name;

this.cardNo = cardNo;

}

}

private void sortDemo() {

List studentList = new ArrayList<>();

studentList.add(new Student("Li", 9));

studentList.add(new Student("Lin", 3));

studentList.add(new Student("Xiao Bai", 7));

studentList = studentList.stream().sorted(Comparator.comparing(Student::getCardNo).reversed()).collect(Collectors.toList());

System.out.println("学号倒序:");

studentList.forEach(i->System.out.println("姓名:" + i.getName() + ",学号:" + i.getCardNo()));

}

其他

private void otherDemo() {

List list = Arrays.asList(1,2,3,4,5);

IntSummaryStatistics stats = list.stream().mapToInt(i->i*10).summaryStatistics();

System.out.println("最大 : " + stats.getMax());

System.out.println("最小 : " + stats.getMin());

System.out.println("求和 : " + stats.getSum());

System.out.println("平均数 : " + stats.getAverage());

String str = list.stream().mapToInt(i->i).mapToObj(String::valueOf).collect(Collectors.joining(","));

System.out.println("随机数拼串 :" + str);

}

HashMap的遍历

PS:大N年没记住的HashMap遍历,用了java8,我立刻就可以了~

private void hashMapDemo() {

Map map = new HashMap<>();

map.put("name", "Li");

map.put("cardNo", "1");

map.keySet().forEach(i->{System.out.println(i + ":" + map.get(i));});

}

完整示例

package com.example.basedemo.controller;

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONArray;

import com.alibaba.fastjson.JSONObject;

import lombok.Data;

import java.util.*;

import java.util.stream.Collectors;

/**

* @Author: lmy

* @Date: 2021/2/18 13:07

* @Description:

*/

public class Java8 {

public static void main(String[] arg) {

Java8 java8 = new Java8();

java8.listStudent();

java8.mapStudent();

java8.filterDemo();

java8.limitDemo();

java8.sortDemo();

java8.otherDemo();

java8.hashMapDemo();

}

@Data

class Student {

private String name;

private Integer cardNo;

Student(){

}

Student(String name, Integer cardNo) {

this.name = name;

this.cardNo = cardNo;

}

}

private void sortDemo() {

List studentList = new ArrayList<>();

studentList.add(new Student("Li", 9));

studentList.add(new Student("Lin", 3));

studentList.add(new Student("Xiao Bai", 7));

studentList = studentList.stream().sorted(Comparator.comparing(Student::getCardNo).reversed()).collect(Collectors.toList());

System.out.println("学号倒序:");

studentList.forEach(i->System.out.println("姓名:" + i.getName() + ",学号:" + i.getCardNo()));

}

private void mapStudent() {

String jsonStr = "[{\"name\":\"Li\",\"cardNo\":\"1563729027\"},{\"name\":\"Lin\",\"cardNo\":\"625188409\"},{\"name\":\"Xiao Bai\",\"cardNo\":\"354972723\"}]";

JSONArray jsonArray = JSON.parseArray(jsonStr);

String names = jsonArray.stream().map(i -> ((JSONObject) i).getString("name")).collect(Collectors.joining(","));

System.out.println("学生姓名:" + names);

}

private void listStudent() {

List names = Arrays.asList("Li", "Lin", "Xiao Bai");

List studentList = new ArrayList<>();

names.forEach(i->addStudent(studentList, i));

studentList.forEach(i->System.out.println("姓名:" + i.getName() + ",学号:" + i.getCardNo()));

}

private void addStudent(List studentList, String name) {

Student student = new Student();

int cardNo = UUID.randomUUID().toString().hashCode();

student.setCardNo(cardNo<0?-cardNo:cardNo);

student.setName(name);

studentList.add(student);

}

private void filterDemo() {

List list = Arrays.asList(1,2,3,4,5);

long count = list.stream().filter(i -> i % 2 == 0).count();

System.out.println("偶数个数:" + count);

}

private void limitDemo() {

// 获取10以内5个不重复的随机数

new Random().ints(0, 10).distinct().limit(5).forEach(System.out::println);

}

private void otherDemo() {

List list = Arrays.asList(1,2,3,4,5);

IntSummaryStatistics stats = list.stream().mapToInt(i->i*10).summaryStatistics();

System.out.println("最大 : " + stats.getMax());

System.out.println("最小 : " + stats.getMin());

System.out.println("求和 : " + stats.getSum());

System.out.println("平均数 : " + stats.getAverage());

String str = list.stream().mapToInt(i->i).mapToObj(String::valueOf).collect(Collectors.joining(","));

System.out.println("随机数拼串 :" + str);

}

private void hashMapDemo() {

Map map = new HashMap<>();

map.put("name", "Li");

map.put("cardNo", "1");

map.keySet().forEach(i->{System.out.println(i + ":" + map.get(i));});

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值