一:导入依赖包,配置环境
在project下的build.gradle中
classpath 'me.tatarka:gradle-retrolambda:3.2.5'
在module下的build.gradle的android{ }中
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
在module下的build.gradle的defaultConfig{ }中
jackOptions {
enabled true
}
二.进行代码编写
在activity_main中布局
我写了四个例子,所以用了4个button按钮
MainActivity.java中
public class MainActivity extends AppCompatActivity {
private Button button,button2,button3,button4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3);
button4 = (Button) findViewById(R.id.button4);
/*平方数
* 这段代码生成一个整数 list 的平方数 {1, 4, 9, 16}
* */
button.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onClick(View view) {
List<Integer> nums = Arrays.asList(1, 2, 3, 4);
List<Integer> squareNums =
nums.stream()
.map(n -> n * n)
.collect(Collectors.toList());
squareNums.forEach(p -> System.out.println(p));
}
});
/*计算集合元素的最大值、最小值、总和以及平均值*/
button2.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onClick(View view) {
//获取数字的个数、最小值、最大值、总和以及平均值
List<Integer> primes = Arrays.asList(2, 3, 5, 7, 11, 13, 17, 19, 23, 29);
IntSummaryStatistics stats = primes.stream().mapToInt((x) -> x).summaryStatistics();
System.out.println("Highest: " + stats.getMax());
System.out.println("Lowest: " + stats.getMin());
System.out.println("Sum: " + stats.getSum());
System.out.println("Average of all prime numbers: " + stats.getAverage());
primes.forEach(p -> System.out.println(p));
}
});
/*转换大小写*/
button3.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onClick(View view) {
List<String> wordList = Arrays.asList("w","h","l");
List<String> output =
wordList.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
output.forEach(p -> System.out.println(p));
}
});
/*筛选偶数*/
button4.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onClick(View view) {
Integer[] sixNums = {1, 2, 3, 4, 5, 6,7,8,9,10};
Integer[] evens = Stream.of(sixNums)
.filter(n -> n%2 == 0)
.toArray(Integer[]::new);
Stream<Integer> stream = Arrays.stream(evens);
stream.forEach(p -> System.out.println(p));
}
});
}
}