
现在你对Optional类的基础知识和用法有了了解。
optional 类是一个容器对象,用于存放null 或not null 值。
下面是Optional 类的使用实例。
如何在java8中把List转换为Optional?
- 首先,使用Arrays.asList()方法将数组转换为列表。
Optional.of(list)方法创建 列表,其中有非空值。Optional- 这就把列表转换为可选列表。
- 使用
ifPresent()方法和lambda表达式,返回OptionalList的大小。
下面是一个例子
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
public class Test {
public static void main(String[] args) throws Exception{
Integer[] numbersArray = { 1, 2, 3, 4, 5, 6, 7 };
List<Integer> integers = new ArrayList<>(Arrays.asList(numbersArray));
Optional<List<Integer>> listIntegersOptional = Optional.of(integers);
listIntegersOptional.ifPresent((list) -> {
System.out.println(list.size()); // output
});
}
}
如何将列表转换为java8的列表?
这是一个在java8中将List转换为List的例子。
使用stream() 与lambda表达式,在Optional 类中使用collect 方法映射每个元素和Wrap。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
public class CovertOptionalList {
public static void main(String[] args) throws Exception{
Integer[] numbersArray = { 1, 2, 3, 4, 5, 6, 7 };
List<Integer> integerList = new ArrayList<Integer>(Arrays.asList(numbersArray));
List<Optional<Integer>> listOptionalIntegers =
integerList.stream()
.map(Optional::ofNullable)
.collect(Collectors.toList());
}
}
如何将可选字符串转换为字符串
首先,使用ofNullable 方法创建一个Optional字符串。
或者,你可以使用of() 方法创建Optional实例。
java8中Of()和ofNullable()的区别
of() null``ofNullable() ,如果值是null ,则返回 Empty可选实例。
一旦创建了实例,get() 方法会将可选字符串转换为字符串对象。
import java.util.Optional;
public class Test {
public static void main(String[] args) throws Exception{
Optional<String> optionalString1=Optional.ofNullable("testoptionalstring");
String string=optionalString1.get();
System.out.println(string);
}
}
如何将字符串转换为可选字符串
ofNullable() 方法将普通的Object转换为Optional Object类型。
import java.util.Optional;
public class ConvertOptionalString {
public static void main(String[] args) throws Exception{
String str="kiran";
Optional<String> optionalString=Optional.ofNullable(str);
System.out.println(optionalString.isPresent());
optionalString.ifPresent(value->{
System.out.println(value);
});
}
}
下面的例子解释了用法和转换。
在java8中,如何将可选字符串转换为对象类型的流?
Optional Stream 类是一个用于处理数据的聚合结果的容器。
这是一个在java8中将 Optional转换为Stream 的例子。
import java.util.Optional;
import java.util.stream.Stream;
public class OptionalStreamExample {
public static void main(String[] args) throws Exception{
String str="kiran";
Optional<String> optionalString=Optional.ofNullable(str);
Stream<String> streamString = optionalString.isPresent() ? Stream.of(optionalString.get()) : Stream.empty();
}
}
如何将java8中的Optional转换为Optional?
- 首先,使用
ofNullable()方法创建OptionalInteger。 - 使用isPresent()方法检查值是否存在,如果值存在,使用
get()方法获取值并转换为长值,将其传递给Optional.ofNullable(),创建一个Optional Long对象。
import java.util.Optional;
public class OptionalIntegerToLongExample {
public static void main(String[] args) throws Exception{
Optional<Integer> optionalInteger=Optional.ofNullable(123);
Optional<Long> optionalLong = Optional.ofNullable(optionalInteger.isPresent() ?
optionalInteger.get().longValue() : null);
}
}
在java8中把两个或多个可选字符串串联成可选字符串
这是一个关于Optional及其实用方法的简单使用方法。
import java.util.Optional;
public class Test {
public static void main(String[] args) throws Exception{
Optional<String> one = Optional.ofNullable("one");
Optional<String> two = Optional.ofNullable("two");
Optional<String> output;
output = one.isPresent() && two.isPresent() ? Optional.of(one.get() + two.get()) : Optional.empty();
System.out.println(output.get());
}
}
输出
onetwo
如何从ArrayList中移除空的null可选值?
首先创建一个ArrayList,其中有null、empty和not null等可选值。
我们将使用过滤器、地图、收集器与lambda表达式从数组中移除空/空值。
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
public class Test {
public static void main(String[] args) throws Exception{
List<Optional<String>> listOptionalStrings = new ArrayList<>();
listOptionalStrings.add(Optional.of("one"));
listOptionalStrings.add(Optional.empty());
listOptionalStrings.add(Optional.of("two"));
listOptionalStrings.add(Optional.of("three"));
listOptionalStrings.add(Optional.empty());
listOptionalStrings.add(Optional.of("four"));
listOptionalStrings.add(Optional.ofNullable(null));
List<String> stringList = listOptionalStrings.stream()
.filter(Optional::isPresent)
.map(Optional::get)
.collect(Collectors.toList());
stringList.forEach((value) -> {
System.out.println(value);
});
}
}
输出
one
two
three
four
结论
你在Optional类中学习了多个例子,并有一个逐步的指导。