例如,是否可以将字符str.chars()流转换为字符串流,其中每个字符串包含 5 个字符?
我想在过滤后将输入列表转换为不同的列表。请知道如何在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) 我有一个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 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
在浏览功能接口时,我无法理解它们与使用单一方法的其他接口有何不同,例如 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) 我想讨论一个特定集合 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) 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) 我有一个嵌套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?
我有一个方法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) 我有一个这样的字符串
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-8 ×10
java ×9
java-stream ×4
date ×2
dictionary ×1
flatten ×1
hash ×1
java-9 ×1
lambda ×1
performance ×1
sorting ×1