我想使用新的java8 API(如stream,lambda,谓词)来使用下面的代码,并将其减少到最小行数
public static List<Long> validateChannelList(String channelList) {
List<Long> channelListNumber = new ArrayList<Long>();
String[] channels = channelList.split(",");
for (String channel : channels) {
channelListNumber.add(Long.parseLong(channel));
}
}
Run Code Online (Sandbox Code Playgroud)
请使用JAVA8帮助将foreach循环或整个方法减少到最小行数
我有一个字符串,并希望为每一行添加一个前缀,从而产生一个新的字符串.
如何使用新的Java 8语法执行此操作?谢谢.
我对匿名类的了解是,当您拥有任何类或接口,并且只有部分代码需要匿名实现或覆盖某个类或接口时,它会增加程序的可读性。但是我有点困惑,假设将来您需要为不同的类实现相同的接口,因此在这种情况下,您必须重构以前的类,那么匿名类还有其他优势吗?(它是否提高了性能?)
我目前正在 ServerSocket 中编写一个基本的网络服务器,我正在尝试使用 java 8 流来清理我的代码。这一直很顺利,但是当我尝试使用 BufferedReader 使用流读取请求时,我的程序挂起并且请求从未完全读入。我在下面列出了差异。
使用流:
InputStream stream = socket.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(stream));
System.out.println("----------REQUEST START---------");
List<String> rawRequest = in.lines()
.peek(System.out::println)
.map(line -> line.toString())
.collect(Collectors.toList());
System.out.println("----------REQUEST END---------\n\n");
Run Code Online (Sandbox Code Playgroud)
没有流:
InputStream stream = socket.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(stream));
List<String> rawRequest = new ArrayList<>();
try {
System.out.println("----------REQUEST START---------");
// read only headers
for (String line = in.readLine(); line != null && line.trim().length() > 0; line = in.readLine()) {
System.out.println(line);
rawRequest.add(line);
}
System.out.println("----------REQUEST END---------\n\n");
} catch (IOException …Run Code Online (Sandbox Code Playgroud) 我无法理解为什么BinaryOperator<Integer>可以A在下面的代码中放置在的位置,而不是BiFunction<Integer, Integer>?
A foo = (a, b) -> { return a * a + b * b; };
int bar = foo.apply(2, 3);
System.out.println(bar);
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我理解它。
public static int amountKurse (List<Studie> lstd) {
int result = (int) lstd.stream().map(Studie::getKurse).count();
return result;
}
private Map<Kurs,Integer> kurse = new HashMap<>();
public Set<Kurs> getKurse(){
return kurse.keySet();
}
Run Code Online (Sandbox Code Playgroud)
我想计算Kurse我所有Studie对象中的数量。我目前的结果是20,什么时候应该是132
我猜我的功能只是计算数量Studie
将不胜感激这方面的一些帮助。
我有以下场景:我有一个登记入住应用程序,如果用户在第 1 天早上 8 点到晚上 8 点之间没有登记入住,那么在上午 8 点(包括在内)之后,用户可以再次登记入住。
例如:
LastCheckin -> JAN 28th 08:01AM Today -> JAN 29th 07:50AM 以上无法登记
LastCheckin -> JAN 28th 00:50AM Today -> JAN 28th 09:10PM 可以在上面签到
LastCheckin -> JAN 28th 07:50AM Today -> JAN 28th 09:50AM 可以在上面签到
LastCheckin -> JAN 28th 05:50PM Today -> JAN 28th 06:50AM 以上无法签到
我的验证功能:
private Boolean validateLastCheckIn(LocalDateTime lastCheckinDate){
LocalTime checkinTime = LocalTime.MIDNIGHT.plusHours(8);
LocalDate today = LocalDate.now();
LocalDateTime todayCheckinTime = LocalDateTime.of(today, checkinTime);
//if trying to checkIn before limit, but on …Run Code Online (Sandbox Code Playgroud) 如何连接整数列表
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
Optional<Integer> result = numbers.stream().reduce((subtotal, element)-> Integer.valueOf(subtotal + ", " + element));
Run Code Online (Sandbox Code Playgroud)
但我有一个例外:
线程“main”中的异常java.lang.NumberFormatException:对于输入字符串:java.lang.NumberFormatException.forInputString(Unknown Source)处的“1, 2”
我在一家有许多Java 8项目的公司中工作。这些项目的价值已很高,我们的团队想升级版本。但是,我们需要有效的积分才能解开局势。
这些项目正在使用Spring和Hibernate(如果有用)。
如果有任何事实要点,我们可以给我们公司提供哪些事实要点来升级版本?
有用的有效点的例子有:
可能备份了文档或有用资源的链接。
我目前正在尝试使用 Java 学习流,但是我偶然发现了一个我无法自己解决的问题。给定具有Person年龄、高度和名称属性的对象列表。我想编写一个方法toString(),按高度对 List 进行排序,以防高度按年龄相等(所有内容均按降序排列)。有没有可能用流来解决这个问题?我知道如何按高度对 List 进行排序,但是我不明白如何获得相等的元素(具有相同高度的人)并按年龄对它们进行排序。
班级Person:
public class Person {
private int age;
private double height;
private String name;
public Person(int age, double height, String name){
this.age = age;
this.height = height;
this.name = name;
}
public int getAge() {
return age;
}
public double getHeight() {
return height;
}
public String getName() {
return name;
}
}
Run Code Online (Sandbox Code Playgroud)
Data 类(在其中创建 toString 方法):
public class Data {
private List<Person> persons;
public Data(List<Person> persons){ …Run Code Online (Sandbox Code Playgroud)