Java 中流与循环的比较
流 是一个管道系统,主要用于在 Java 环境中聚合一些操作,例如 (filter()、map()、forEach() 和 collect())。此函数包含一个源,后跟零个值,然后终止操作。函数是输入输出流,主要取决于输入参数。
每个流在以下情况下工作 -
它从数据源开始。
通过管道处理数据元素。
在终端操作中终止自身。
流与循环比较示例
这是一个示例 -
Benchmark Is Here Mode Cnt Score Error Units ForLoopPerformanceTest.usingForEachLoop thrpt 20 259.008 ± 17.888 ops/s ForLoopPerformanceTest.usingIterator thrpt 20 256.016 ± 10.342 ops/s ForLoopPerformanceTest.usingSimpleForLoop thrpt 20 495.308 ± 12.866 ops/s ForLoopPerformanceTest.usingStream thrpt 20 257.174 ± 15.880 ops/s
流与循环比较算法
在这个可能的算法中,我们将向您展示如何执行两个单独流之间的比较过程以从中获取值。
步骤 1 - 开始流程。
步骤 2 - 导入并声明 Java 包。
步骤 3 - 声明一个公共主类。
步骤 4 - 声明一个主驱动方法。
步骤 5 - 声明一个普通的整数流。
步骤 6 - 添加一个新的行流。
步骤 7 - 使用跳过值提及整数流。
步骤 8 - 添加一个新的内联值。
步骤 9 - 根据需要添加更多字符串。
步骤 10 - 声明一个字符串。
步骤 11 - 编写输出流。
步骤 12 - 对数组进行排序并打印它们。
步骤 13 - 获取返回值。
步骤 14 - 终止流程。
流与循环比较语法
class Person {
private String name;
private int age;
private String gender;
private List<Person> siblings;
public Person(String name, int age, String gender, List<Person> siblings) {
this.name = name;
this.age = age;
this.gender = gender;
this.siblings = siblings;
}
public String getGender() {
return gender;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public List<Person> getSiblings() {
return siblings;
}
}
private void streaming() {
List<Person> persons = List.of();
List<String> result = persons.stream()
.filter(p -> p.getAge() > 18)
.filter(p -> p.getAge() <= 65)
.filter(p -> p.getName() != null)
.filter(p -> p.getName().startsWith("B"))
.map(p -> p.getName())
.collect(Collectors.toList());
}
在上面这个可能的语法中,我们尝试向您展示如何创建一个输入流并将其与另一个 数组列表 进行比较。通过使用上面提到的这些特定语法,我们正在朝着与问题陈述相关的一些可能方法迈进。
遵循的方法
方法 1 - 使用 java.io.IOException 并从现有列表创建新列表来比较流与循环的 Java 程序
方法 2 - 当比较流的操作导致异常时显示代码执行的 Java 程序
方法 1:使用 Java.io.IOException 并从现有列表创建新列表来比较流与循环
Java.io.IOException 的使用和从现有列表创建列表
在这种可能的方法中,我们将使用 java.io.IOException,并且我们将进一步创建一个特定的数组列表,以获取排序元素的新数组列表作为输出。
private void forLoop(){
List<Person> persons = List.of();
List<String> result = new ArrayList<>();
for(Person p : persons){
if(p.getAge() > 18 && p.getAge() <= 65 && p.getName() != null &&
p.getName().startsWith("B")){
result.add(p.getName());
}
}
}
示例 1
//Java Program to Compare Streams to Loops By Using java.io.IOException
import java.io.IOException;
import java.lang.String;
import java.nio.file.*;
import java.util.*;
import java.util.Arrays;
import java.util.List;
import java.util.stream.*;
public class ARBRDDKOLDHAKA {
public static void main(String[] args)
throws IOException{
System.out.println("Integer Stream Is Here: ");
IntStream.range(1, 20).forEach(System.out::print);
System.out.println();
System.out.println("Integer Stream Values With The Value Skip :");
IntStream.range(1, 20).skip(5).forEach(
x -> System.out.println(x));
System.out.println();
System.out.println("Integer Stream With Sum We Can Get: ");
System.out.println(IntStream.range(1, 5).sum());
System.out.println();
System.out.println(
"Stream.of, sorted and Find The First : ");
Stream.of("Rudra ", "Aboni ", "2022 ")
.sorted()
.findFirst()
.ifPresent(System.out::println);
System.out.println();
String[] names = { "India", "Bangladesh",
"Dhaka", "Kolkata",
"Esplanade", "Howrah Bridge",
"DU", "Indira Road",
"Kolkata Dhaka Cantt." };
System.out.println(
"Stream from Array, sort, filter and print : ");
Arrays
.stream(names)
.filter(x -> x.startsWith("S"))
.sorted()
.forEach(System.out::println);
System.out.println();
System.out.println(
"Average of squares of an int array : ");
Arrays.stream(new int[] { 2, 4, 6, 8, 10 })
.map(x -> x * x)
.average()
.ifPresent(System.out::println);
System.out.println();
System.out.println(
"Stream from List, filter and print : ");
List<String> people = Arrays.asList(
"AI", "Matlab", "Scikit", "TensorFlow",
"OpenCV", "DeepLearning", "NLP",
"NeuralNetworks");
people.stream()
.map(String::toLowerCase)
.filter(x -> x.startsWith("a"))
.forEach(System.out::println);
System.out.println();
System.out.println("Reduction - sum : ");
double total
= Stream.of(7.3, 1.5, 4.8)
.reduce(0.0,
(Double a, Double b) -> a + b);
System.out.println("Total = " + total);
System.out.println();
System.out.println(
"Reduction - summary statistics : ");
IntSummaryStatistics summary
= IntStream.of(7, 2, 19, 88, 73, 4, 10)
.summaryStatistics();
System.out.println(summary);
System.out.println();
}
}
输出
Integer Stream Is Here:
12345678910111213141516171819
Integer Stream Values With The Value Skip :
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Integer Stream With Sum We Can Get:
10
Stream.of, sorted and Find The First :
2022
Stream from Array, sort, filter and print :
Average of squares of an int array :
44.0
Stream from List, filter and print :
ai
Reduction - sum :
Total = 13.600000000000001
Reduction - summary statistics :
IntSummaryStatistics{count=7, sum=203, min=2, average=29.000000, max=88}
在这种特定的 Java 方法中,我们将首先创建一个列表。通过使用该特定列表,我们将使用一些循环将流与之进行比较,以从之前声明的数据集中获取新的排序数据元素。
示例 2
//Java Program to Comparing Streams to Loops By Creating A New List From An Existing List
import java.util.*;
class ProgrammingLanguage {
int rank;
String name;
int value;
public ProgrammingLanguage(int rank, String name,
int value){
this.rank = rank;
this.name = name;
this.value = value;
}
}
public class ARBRDD {
public static void main(String[] args){
List<ProgrammingLanguage> programmingLanguage
= new ArrayList<ProgrammingLanguage>();
programmingLanguage.add(
new ProgrammingLanguage(1, "Java Programming",07102001 ));
programmingLanguage.add(
new ProgrammingLanguage(2, "Rust Programming", 16101997));
programmingLanguage.add(
new ProgrammingLanguage(3, "Ruby", 1500));
programmingLanguage.add(
new ProgrammingLanguage(4, "Scala", 2500));
programmingLanguage.add(
new ProgrammingLanguage(5, "Groovy", 4000));
List<Integer> languageValueList
= new ArrayList<Integer>();
for (ProgrammingLanguage language :
programmingLanguage) {
if (language.value < 3000) {
languageValueList.add(language.value);
}
}
System.out.println(languageValueList);
}
}
输出
[1500, 2500]
方法 2:比较流导致异常时代码的执行
finally 块的使用
在这种方法中,我们将解释在打开文件(也称为字符串)并使用循环对其进行操作时,比较流可能发生的异常。这是一种修复流异常的方法,可帮助代码成功运行。
try {
System.out.println("Open files");
int a = 45;
int b = 0;
int div = a / b;
System.out.println("STATEMENT" + div);
}
示例
//Java program to show the execution of the code when exception is caused by the operation of comparing steram
import java.io.*;
public class ARBRDD {
public static void main(String[] args){
try {
System.out.println("Open files");
int a = 45;
int b = 0;
int div = a / b;
System.out.println("After dividing a and b ans is " + div);
}
catch (ArithmeticException ae) {
System.out.println("exception caught");
System.out.println(ae);
}
finally {
System.out.println("Inside finally block after the stream comparison");
System.out.println("Close files");
}
}
}
输出
Open files exception caught java.lang.ArithmeticException: / by zero Inside finally block after the stream comparison Close files
结论
将流与循环进行比较是对数组的轻量级操作,这有助于堆构建方面,并且我们可以掌握 CPU 使用情况。在今天的这篇文章中,我们尝试使用上述提到的语法和算法构建一些 Java 代码,以有效的方式解决问题陈述。
另请参阅: Java 面试问题及答案
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP