标签: java-8

Java 8 流与列表

我有一组私有方法,用于类的主要公共方法(接收列表),这些方法将主要使用 java 8 经典流操作,如 、等filter我想知道是否在公共 api 中创建一次流传递给其他方法而不是传递列表具有任何性能优势或考虑因素,称为一次性。 mapcount.stream()

java java-8 java-stream

-3
推荐指数
1
解决办法
5425
查看次数

有没有办法将 Java8 可选返回值与在 null 上打印消息结合起来?

我从这段代码开始:

String startingValue = getMyValue();
String finishingValue = "";
if (startingValue != null) {
    finishingValue = startingValue;
} else {
    System.out.println("Value was null");
}
Run Code Online (Sandbox Code Playgroud)

我想使用 Java 8 选项将其转换为如下所示:

Optional<String> startingOptional = getMyOptional();
String finishingValue =
        startingOptional
                .map(value -> value)
                .orElse(System.out.println("value not found"));
Run Code Online (Sandbox Code Playgroud)

我的问题是:有没有办法将 Java8 可选返回值与在 null 上打印消息结合起来?

java null java-8 option-type

-3
推荐指数
1
解决办法
607
查看次数

如何有条件地设置变量值

我正在尝试根据条件设置变量值,我想知道在 Java 8 中是否有更好的方法来做到这一点,而不是使用多个 if else 或 switch 语句。

我需要根据字符串值设置请求编号

123 为 foo,123 为 bar,456 为 xyz,000 作为默认值,即任何其他字符串值。

if(someString.equalsIgnorecase("foo")){
x = someObj.setRequestNumber(123);
}

else if(someString.equalsIgnorecase("bar")){
x = someObj.setRequestNumber(123);
}

else if(someString.equalsIgnorecase("xyz")){
x = someObj.setRequestNumber(456);
}

else{
x = someObj.setRequestNumber(000);
}
Run Code Online (Sandbox Code Playgroud)

java java-8

-3
推荐指数
1
解决办法
94
查看次数

NULL 作为第八种“原始”数据类型

由 Java 鲜为人知的数据类型“null”引起的无意识查询。

有人能够澄清“null”是否是 Java 语言保留的文字,以及它作为原始数据类型和数字值之间的差异吗?

NULL default_object_value; // a Syntax error
NULL acct_balance_at_westbank = null; // Another Syntax error

String aStrokeOfLuck = null; // a feasible variable declaration & assignment
Run Code Online (Sandbox Code Playgroud)

java javac primitive-types java-8

-3
推荐指数
1
解决办法
93
查看次数

责任链 - lambda函数实现

如何在Java 8中使用Lambda实现Chain of Responsibility模式?它看起来怎么样?


我在本文中只找到了一个段落:

责任链

可能会或可能不会委托给另一个lambda的lambda,它可能会或可能不会委托给另一个lambda,无限制.(如何将"下一个"引用到lambda中作为练习留给读者.)

java lambda design-patterns chain-of-responsibility java-8

-4
推荐指数
1
解决办法
4034
查看次数

除了将Runnable传递给Thread的构造函数之外,Runnable在哪里使用?

我试图了解Sonar规则squid:S1217,其中提到调用Thread.run()和Runnable.run()方法是一种不好的做法.我想知道可以使用Runnable.run()的场景.

java multithreading runnable java-8 sonarqube

-4
推荐指数
1
解决办法
139
查看次数

使用Java 8流收集重复项

我有一个名单cats,我想组cats具有相同的colour和他们组owner。如何在Java 8中做到这一点?

public class Cat{
    private String name;
    private Owner owner;
    private String color;
    public Cat(String name,Owner owner,String color){
        this.name=name;
        this.owner= owner;
        this.color= color;
    }
}

public class Owner{
    private String name;
    public Owner(String name){
        this.name= name;
    } 
}
Run Code Online (Sandbox Code Playgroud)

可以说我有以下数据:

Owner owner1= new Owner("John");  Owner owner2= new Owner("Smith");
Owner owner3= new Owner("Scott"); 
Cat cat1 = new Cat ("Cat1",owner1,"Brown"); 
Cat cat2 = new Cat ("Cat2",owner2,"Black");
Cat cat3 = new Cat ("Cat3",owner1,"Brown");
Cat cat4 …
Run Code Online (Sandbox Code Playgroud)

java lambda java-8

-4
推荐指数
1
解决办法
2945
查看次数

Collections.shuffle(一)魔术?


System.out.println("*****")之后的魔术; Collections.shuffle(一);

〜$ java -version java version"1.8.0_101"Java(TM)SE运行时环境(版本1.8.0_101-b13)Java HotSpot(TM)64位服务器VM(版本25.101-b13,混合模式)

public static void main(String[] args) {

        List<Integer> a = Arrays.asList(1,  3,  5, 9, 14);
        Collections.shuffle(a);

        System.out.println(a);

        List<Integer> b = a.subList(0, a.size() - 1);
        List<Integer> b1 = new ArrayList<>(a.subList(0, a.size() - 1));
        System.out.println(b);
        System.out.println(b1);

        System.out.println("*****");
        Collections.shuffle(a);
        System.out.println(a);

        Collections.shuffle(b);
        System.out.println(b);

        Collections.shuffle(b1);
        System.out.println(b1);
}

[14, 1, 9, 3, 5]
[14, 1, 9, 3]
[14, 1, 9, 3]
*****
[14, 9, 3, 5, 1]
[3, 14, 9, 5]
[1, 14, 9, 3]
Run Code Online (Sandbox Code Playgroud)

b shuffle(a)a.subList(0,a.size() - 1)之后的eq …

java java-8

-4
推荐指数
1
解决办法
100
查看次数

如果一个接口扩展了许多具有相同默认方法的其他接口,会发生什么?

precondition:
1.inteface A extended B,C,D;
2.A,B,C,D have same default method : default Object getById(Long Id){...};

user case:
1.class E implements A;
2.class E call default method getById, then which one will be called?
Run Code Online (Sandbox Code Playgroud)

我很迷惑。记不清了。^_^

java java-8

-4
推荐指数
1
解决办法
66
查看次数

无法将 \ 格式 java.util.Date 转换为 yyyy-mm-dd

我正在尝试将 java.util.Date 转换为 java.util.Date 但格式不同

10 月 11 日星期三 10:00:00 CDT 2023 --> 2023-10-11T10:00:00.000Z

我展示了很多帖子,并尝试了下面不同的解决方案,但没有运气。

将日期转换为字符串,然后再次转换为日期,但格式不变。

  Date utilDate = Wed Oct 11 10:00:00 CDT 2023 // Your java.util.Date

        // Define the desired format
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        // Convert the java.util.Date to a formatted String
        String formattedDate = dateFormat.format(utilDate);

        System.out.println("Formatted Date String: " + formattedDate);
//convert String again into java.util.Date
// it will return the same utilDate.
Run Code Online (Sandbox Code Playgroud)

还尝试使用 2 SimpleDateFormat 对象。请进一步指导我。

java date java.util.date java-8

-4
推荐指数
1
解决办法
90
查看次数