标签: java-8

根据Java 8中的多个属性从对象列表中删除重复项

我试图从基于两个属性的对象列表中删除重复项,这个问题类似于下面的链接,但是我试图使用Java 8功能基于两个属性找到唯一性。

示例:我有一个自定义对象,其中两个属性一起构成唯一的条目

说列出客户

customerName和DOB一起进行唯一输入。

使用两个属性的谓词来识别区别的任何解决方案。像下面的链接,他们对一个属性有解决方案。 Java 8按属性区分

类似的问题:

根据Java 8中的属性从对象列表中删除重复项

java java-8

0
推荐指数
1
解决办法
7538
查看次数

从地图获取平均值

我试图使用Java 8从Map获取平均值,但是我没有获取值本身,而是想获得Map.Entry.

double average = totals.entrySet()
                       .stream()
                       .mapToDouble(i -> i.getValue())
                       .average()
                       .orElse(0); //Want to get Map.Entry instead
Run Code Online (Sandbox Code Playgroud)

java lambda average hashmap java-8

0
推荐指数
1
解决办法
377
查看次数

java 8中有"instanceof"的替换吗?

如何更改下面的代码在java 8中使用流来检查类型对象并进行转换?java 8还有其他选择吗?

private void fillObject(Object role, String issuingRange) {

        if (role != null) {
            List<String> rangeList2 = null;
            if (role instanceof ArrayList<?>) {
                rangeList2 = (ArrayList<String>) role ;
            } else if (role instanceof String) {
                rangeList2 = new ArrayList(Arrays.asList(role ));
            }
}
Run Code Online (Sandbox Code Playgroud)

java oop java-8 java-stream

0
推荐指数
1
解决办法
555
查看次数

有条件地从Java 8中的列表中删除元素

据我所知,Java 8引入了一种可用于Collection类型的新方法:removeif()。它接受一个谓词,该谓词定义了应删除元素的条件。它返回一个布尔值,其中“真”响应表示已删除至少一个项目,否则返回“假”:我有此类:

HotelPriceSummary {
     Hotel hotel;
     float price
}
Run Code Online (Sandbox Code Playgroud)

一种 List<HotelPriceSummary> allHotels;

Iterable<Hotel> discardedHotels

我想做类似的事情(显然,existIn是一个不存在的函数,是表达我想做的事情,但我没有找到方法)

allHotels.removeIf(h -> h.getHotel().existsIn (discardedHotels))
Run Code Online (Sandbox Code Playgroud)

java collections lambda java-8

0
推荐指数
1
解决办法
3193
查看次数

如何确保使用接口实现公共静态函数

从Java 8开始,我们可以在接口中定义静态和默认方法.但我需要确保一个公共静态方法说foo()要在实现特定接口的所有类中实现interface A.我该怎么做,或者它是否可能?

界面A:

package com.practice.misc.interfacetest;

public interface A {
    public static Object foo(); //Eclipse shows error : 'This method requires a body instead of a semicolon'
    String normalFunc();
}
Run Code Online (Sandbox Code Playgroud)

B级:

package com.practice.misc.interfacetest;

public class B implements A{

    @Override
    public String normalFunc() {
        return "B.normalFunc";
    }
//I need to ensure that I have to define function foo() too

}
Run Code Online (Sandbox Code Playgroud)

C级:

package com.practice.misc.interfacetest;

public class C implements A{

    @Override
    public String normalFunc() {
        return "C.normalFunc";
    }
//I …
Run Code Online (Sandbox Code Playgroud)

java interface java-8

0
推荐指数
1
解决办法
118
查看次数

Java 8排序浮点值

我有一份员工名单,有不同的经历,如

5.0,3.3,5.5,5.6,4.5等..

当我试图通过使用Math.round它给出错误的结果来排序最大到最小经验时,例如:

5.6,5.0,5.5,5.3,4.5等..

我想要的结果如下:

5.6,5.5,5.3,5.0,4.5等..

我在这里用过Collections.sort:

Collections.sort(employeeList, new Comparator<Emp>() {
        @Override
        public int compare(Emp t, Emp t1) {
            return Math.round(t.getExperience() - t1.getExperience()); // which giving wrong results
//          return Float.compare(t.getExperience() - t1.getExperience()); // which is not working
        }
    });
Run Code Online (Sandbox Code Playgroud)

这里t1.getExperience()将给你浮动结果.

java sorting collections java-8

0
推荐指数
2
解决办法
517
查看次数

JVM - 编译后的字节码内容差异

我最近看到一种让我在SO上问这个问题的行为.我希望人们能够分享他们的发现.

如果使用JDK 1.8 u66和JDK 1.8 u121编译(未更改)相同的文件,那么类文件(字节码)会不同吗?我的意思是:

1)我使用JDK 1.8 u66编译应用程序2)我对1或2个文件进行了更改,并使用JDK 1.8 u66重新编译.

我是否可以期待一些未更改的类文件具有不同的二进制内容,即使它们没有更改?

我的理由是,当我把一个文件的哈希值作为我上面步骤的一部分没有改变时 - 它们在磁盘上有相同的大小,但哈希码完全不同.我使用Winmerge比较这两个版本,其中大小报告相同,但二进制内容不同.以下是我使用Winmerge进行比较的结果(蓝色标记的项目与我的源名称相关,因此我不得不掩盖它) - 但请注意208和248中的区别.

在此输入图像描述

这是预期的吗?如果有的话,有人可以请我指出解释这个问题的文献吗?

问候,

jvm winmerge java-8

0
推荐指数
1
解决办法
51
查看次数

字符串到日期Java 8的月份年份

DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("MM/yyyy");
LocalDate parsedDate = LocalDate.parse(entryOne.getKey(), dateFormat)
Run Code Online (Sandbox Code Playgroud)

获得例外

无法解析文本'03/2018':无法从TemporalAccessor获取LocalDate:

如何解析此字符串并使用具有默认的第一天的Java 8转换为Date.我们使用的东西.

TemporalAdjusters.firstDayOfMonth()
Run Code Online (Sandbox Code Playgroud)

java java-8

0
推荐指数
1
解决办法
1211
查看次数

如何使用Steam API Java 8将Map List &lt;Map &lt;String,Object &gt;&gt;的列表转换为Map Map &lt;String,List &lt;String &gt;&gt;的值列表

我有一张地图清单。该映射包含字符串作为键和对象作为值。最可能的值也为字符串。我想按一个值分组,以便将一组值作为键,将另一组唯一值作为列表。实际上,地图列表是沙发基准选择数据。

例如:

 [{"id":"1", "status":"pending"},{"id":"2", "status":"download"},{"id":"3", "status":"pending"},{"id":"4", "status":"pending"}, {"id":"5", "status":"ready"},{"id":"6", "status":"download"}] => {"pending":["1","3","4"], "download":["2","6"], "ready":["5"]}
Run Code Online (Sandbox Code Playgroud)

java-8 java-stream

0
推荐指数
1
解决办法
121
查看次数

Java匹配器如何根据其值动态替换组

对于快速示例,我有以下字符串:

String s = "hey.there.man.${a.a}crazy$carl${a.b}jones
Run Code Online (Sandbox Code Playgroud)

我也有以下方法:

private String resolveMatchedValue(String s) {
    if(s.equals("a.a")) {
           return "A";
    else if(s.equals("a.b")) { 
           return "Wallet";
    else if(.....
    ....
 }
Run Code Online (Sandbox Code Playgroud)

我的模式是

 Pattern pattern = Pattern.compile("\\$\\{(.*?)\\}");
Run Code Online (Sandbox Code Playgroud)

因此,对于匹配$ {.*}的s中的每个子字符串,我希望调用resolveMatchedValue方法,并且应该替换它.理想情况下,在正则表达式过程之后应该如此

 s = "hey.there.man.Acrazy$carl$Walletjones
Run Code Online (Sandbox Code Playgroud)

我已经查看了类似的解决方案,但没有根据匹配的值动态替换匹配的值,并且无法使其工作

编辑:使用java8

java regex matcher java-8

0
推荐指数
1
解决办法
386
查看次数

标签 统计

java-8 ×10

java ×8

collections ×2

java-stream ×2

lambda ×2

average ×1

hashmap ×1

interface ×1

jvm ×1

matcher ×1

oop ×1

regex ×1

sorting ×1

winmerge ×1