java 8-lambada操作配列、集合
概要
“Lamban表現」は匿名関数であり、Lamda表現は数学に基づくものである。λ演算に名前がついています。直接にその中のlambastractionの抽象に対応しています。匿名関数名がない関数です。Lamban表現はクローズド(数学的伝統的意味との違いに注意)を表すことができる。
基本語句
ラボンダ グループBy
“Lamban表現」は匿名関数であり、Lamda表現は数学に基づくものである。λ演算に名前がついています。直接にその中のlambastractionの抽象に対応しています。匿名関数名がない関数です。Lamban表現はクローズド(数学的伝統的意味との違いに注意)を表すことができる。
基本語句
Runnable noArguments = () -> System.out.println("Hello World");
ActionListener oneArgument = event -> System.out.println("button clicked");
Runnable multiStatement = () -> {
System.out.print("Hello");
System.out.println(" World");
};
BinaryOperator add = (x, y) -> x + y; q
BinaryOperator addExplicit = (Long x, Long y) -> x + y;
書き込みスレッドRunnable runnable = () -> {
System.out.println("Lambda ");
};
Thread thread = new Thread(runnable);
thread.start();
Lambanを使って演算するBinaryOperator add = (x, y) -> x + y;
Integer x = add.apply(20, 30);
統計配列中の要素の出現個数String name[] = {" ", " ", " ", " ", " ", " ", " ", " "};
long num = Arrays.stream(name).filter(x -> x.equals(" ")).count();
配列をリセットしてセットメモリに変換します。String name[] = {" ", " ", " ", " ", " ", " ", " ", " "};
List stringList = Arrays.stream(name).filter(x -> !x.equals(" ")).collect(toList());
配列は重さを取り、要素には拡張子を付けます。String name[] = {" ", " ", " ", " ", " ", " ", " ", " "};
List stringList2 = Arrays.stream(name).filter(x -> !x.equals(" ")).map(y -> y + " :").collect(toList());
行列の和 int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 3, 4, 5, 6, 7, 8, 9, 10 };
int count = 0;
// for
for (int i = 0; i < a.length; i++) {
count += a[i];
}
// foreach
count = 0;
for (int i = 0; i < a.length; i++) {
count += a[i];
}
// Lambda
int num = Arrays.stream(a).reduce(0, (b, c) -> b + c);
ラボンダ の抽出対象フィールドを参照してください。class User{
private String username;
private int age;
public User(){}
public User(String username, int age) {
this.username = username;
this.age = age;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
List userList = asList(new User(" " , 10) , new User(" " , 10) , new User(" " , 13));
String result = userList.stream().map(User::getUsername).collect(Collectors.joining("," , "[" , "]"));
出力結果:[張三、李四、王五]ラボンダ グループBy
List userList = asList(new User(" " , 10) , new User(" " , 10) , new User(" " , 13));
Stream userStream = userList.stream();
Map> integerStringMap = userStream.collect(groupingBy(user->user.getAge() , mapping(User::getUsername , toList())));
System.out.println(integerStringMap.toString());
输出结果:{10=[张三, 李四], 13=[王五]}
出力結果:[張三、1李四、1王五]String result2 = userList.stream().map(User::getUsername) .reduce(new StringJoiner(",1 ", "[", "]"), StringJoiner::add, StringJoiner::merge) .toString(); System.out.println(result2);