标签: java-8

字符到字符串的 IntStream - Java

例如,是否可以将字符str.chars()流转换为字符串流,其中每个字符串包含 5 个字符?

java lambda java-8 java-stream

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

java8 流收集不同的列表

我想在过滤后将输入列表转换为不同的列表。请知道如何在java8流中实现。

我尝试了类似下面的方法,它在 collect() 中的 getOutput() 中给出了编译错误“p 无法解析为变量”。

List<Output> outputList= inputList.stream()
                    .filter(p ->  p.param1==10)                     
                    .collect(Collectors.toList(getOutput(p)));  


private Output getOutput(Input inp){
 Output out = new Output();
 out.value1= inp.value1;
 ---
 ---
}
Run Code Online (Sandbox Code Playgroud)

java-8 java-stream

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

如何按字段对 Hashset&lt;&gt; 进行排序?

我有一个Set<MultiAdminComponent> rootItems = new HashSet<>();哈希集。在这个我有我所有的屏幕。

在我的HashSet我将拥有我所有的行。我想MultiAdminComponent根据rowId.

这是 MultiAdminComponent

 public class MultiAdminComponent {

        private String componentName;
        private String componentIdentification;
        private String componentType;
        private String componentState;
        private String componentUrl;
        private String componentId;
        private String rowId;
        private List<MultiAdminComponent> items;
        private int componentStateId;
        private int ctastatus;
        private String actionId;
        private String actionToPerform;
        private int orderNumber;
        private int ctarevision;
Run Code Online (Sandbox Code Playgroud)

如何根据MultiAdminComponentbean 中的RowId 进行排序

java sorting java-8

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

使用 java 8 apis 加上 1 小时 1 天的日期

我有此代码可以在日期 Java 8 中添加 1 小时或 1 天,但不起作用

    String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
    java.text.SimpleDateFormat format = new java.text.SimpleDateFormat(DATE_FORMAT);
    Date parse = format.parse("2017-01-01 13:00:00");
    LocalDateTime ldt = LocalDateTime.ofInstant(parse.toInstant(), ZoneId.systemDefault());
    ldt.plusHours(1);
    ZonedDateTime zdt = ldt.atZone(ZoneId.systemDefault());
    Date te = Date.from(zdt.toInstant());
Run Code Online (Sandbox Code Playgroud)

怎么了?代码显示:Sun Jan 01 13:00:00 BRST 2017

java date java-8

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

函数式接口与具有单一方法(如 Runnable)的接口

在浏览功能接口时,我无法理解它们与使用单一方法的其他接口有何不同,例如 Runnable。

我们可以在尝试使用其他 Functional 接口时使用 Runnable。在 Java 8 之前,我们已经可以为单个功能创建接口和匿名对象。

例如:

@FunctionalInterface
public interface ITrade {
  public boolean check(Trade t);
}
Run Code Online (Sandbox Code Playgroud)

这与以下有何不同:

public interface ITrade {
  public boolean check(Trade t);
}
Run Code Online (Sandbox Code Playgroud)

java java-8 functional-interface

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

按索引访问 LinkedHashMap 与性能

我想讨论一个特定集合 LinkedHashMap 的一些性能,以满足特定要求,以及 Java 8 或 9 的新特性如何对此有所帮助。

假设我有以下 LinkedHashMap:

private Map<Product, Item> items = new LinkedHashMap<>();
Run Code Online (Sandbox Code Playgroud)

使用默认构造函数意味着此 Map 在迭代时遵循插入顺序。

--EDITED-- 在这里要清楚,我知道 Maps 不是通过索引访问的正确数据结构,碰巧这个类实际上需要两个删除方法,一个是 Product,正确的方法,这是关键,另一个按位置或索引,这并不常见,所以这是我对性能的关注。顺便说一句,这不是我的要求。

我必须通过 index实现removeItem()方法。对于那些不知道的人,LinkedHashMap没有某种map.get(index);可用的方法。

所以我将列出几个解决方案:

解决方案1:

public boolean removeItem(int position) {
    List<Product> orderedList = new ArrayList<>(items.keySet());
    Product key = orderedList.get(position);

    return items.remove(key) != null;
}
Run Code Online (Sandbox Code Playgroud)

解决方案2:

public boolean removeItem(int position) {
    int counter = 0;
    Product key = null; //assuming there's no null keys

    for(Map.Entry<Product, Item> entry: items.entrySet() …
Run Code Online (Sandbox Code Playgroud)

java performance linkedhashmap java-8 java-9

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

Java 8 Date equal null safe

Which is the best way for checking if two Date() object are equals, with null safe feature? Date d1 Date d2

d1 = null, d2 = new Date() => equal false
d1 = null, d2 = null => equal true
d1 = SAME_INSTANT, d2 = SAME_INSTANT => equal true
d1 = new Date(), d2 = YESTERDAY => equal false
Run Code Online (Sandbox Code Playgroud)

java date java-8

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

如何展平 HashMap?

我有一个嵌套HashMap在这种形式:

{key1=val1, key2=val2, 
    key3=[
            {key4=val4, key5=val5}, 
            {key6=val6, key7=val7} 
        ]
}
Run Code Online (Sandbox Code Playgroud)

我现在想展平该地图,以便所有条目都在同一级别:

{key1=val1, key2=val2, key4=val4, key5=val5,key6=val6, key7=val7}
Run Code Online (Sandbox Code Playgroud)

当我尝试

map.values().forEach(map.get("key3")::addAll);
Run Code Online (Sandbox Code Playgroud)

如本文所述,我收到以下错误:

invalid method reference
  cannot find symbol
    symbol:   method addAll(T)
    location: class Object
  where T is a type-variable:
    T extends Object declared in interface Iterable
Run Code Online (Sandbox Code Playgroud)

有没有通用的方法来展平任何给定的Map

java hash dictionary flatten java-8

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

如何使用增强的 for 循环更改方法,该方法将方法调用返回到 Java 中的 Stream?

我有一个方法getBalance,其中我有一个增强的 for 循环,并在我返回的循环内customer.getBalance();

我现在想将该方法更改为 Java 8 中的 Stream,但我不知道该怎么做,因为您无法在流中返回某些内容。

方法:

public double getBalance(String personalNumber, int accountNumber) {

    for (Customer customer : customers) {
        if (customer.getPersonalNumber().equals(personalNumber)) {
            return customer.getBalance(accountNumber);
        }
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

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

Java 流将字符串拆分和收集到 Map

我有一个这样的字符串

String input = "abc|label1 cde|label2 xyz|label1 mno|label3 pqr|label2";
Run Code Online (Sandbox Code Playgroud)

我想创建一个看起来像的地图(过滤掉 label3} label1 -> {abc,xyz} label2 -> {cde,pqr} label3 -> {mno}

这是我目前能做的

  Map<String, List<String>> result = Arrays.stream(inputString.split(" "))
                .filter(i -> !i.contains("label3"))
                .map(i -> i.split("//|"))
Run Code Online (Sandbox Code Playgroud)

还有第二个用例:我如何只收集一个字符串中的所有令牌

abc|label1 cde|label2 xyz|label1 mno|label3 pqr|label2 => "abc cde xyz mno pqr"

java java-8 java-stream

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