我有以下列表integers(所有数字从0到999,999):
List<Integer> integers = new ArrayList<>();
for (int i = 0; i != 10_000_000; ++i) {
integers.add(i);
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试将以下内容作为Java 8 Stream运行:
int sum = 0;
for (Integer i : integers) {
sum = i % 2 == 0 ? i - sum : i + sum;
}
System.out.println(sum);
Run Code Online (Sandbox Code Playgroud)
我期待以下输出:
0 - 0 = 0
1 + 0 = 1
2 - 1 = 1
3 + 1 = 4
4 - 4 = 0
5 + 0 = …Run Code Online (Sandbox Code Playgroud) 我的问题来自这个帖子.
考虑以下代码:
public class Test {
static Function<Integer, Integer> fibLambda = null;
public static void main (String[] args) {
fibLambda = n -> n <= 2 ? 1 : fibLambda.apply(n - 1) + fibLambda.apply(n - 2);
System.out.println(fibLambda.apply(6));
}
}
Run Code Online (Sandbox Code Playgroud)
上面的输出是8.
我没有得到的是如何fibLamdba初始化?似乎我完全错过了方法调用是如何完成的,因为我虽然这个代码会产生一个NPE.
希望我的问题很明确
我正在使用Cay S. Horstmann的书"Java SE 8 for the Really Impatient"进行练习.基于Number课程改进的练习之一是:
编写一个程序,使用值和无符号运算对0到2 32 - 1 之间的数字进行相加,减法,除法和比较
int.说明原因divideUnsigned并且remainderUnsigned是必要的.
问题是,如果添加2个无符号整数,则总和可能溢出整数限制.我没有看到一种方法来防止这种情况,如果不使用long来存储总和并检查它是否大于Integer.MAX_VALUE.是否可以仅使用整数执行此操作?
我正在使用Java 8(build 1.8.0_25),Netbeans 8.0.2,并将一些Java 8功能集成到现有应用程序中.排序和.forEach不起作用,所以我创建了一些测试代码,以确保我理解lambdas等,并诊断问题.下面是新代码和代码的混合,以便与我的系统中的数据进行交互:
public void test(Registration reg) {
/* new code */
List<String> family = new ArrayList<>();
family.add("Mom");
family.add("Dad");
family.add("Brother");
family.add("Sister");
family.forEach(p -> System.out.println(p));
Collections.sort(family, (p1,p2) -> {
System.out.println(p1 + " <==> "+ p2);
return p1.compareToIgnoreCase(p2);
});
family.forEach(p -> System.out.println(p));
/* code to test with my system data */
List<RegistrationItem> item = new ArrayList<>();
List<RegistrationItem> regI = reg.getRegistrationItem();
regI.forEach(p -> {
System.out.println(p.toString());
item.add(p);
});
Collections.sort(regI, (r1,r2) -> {
System.out.println(r1.toString() + r2.toString());
return r1.getId().compareTo(r2.getId());
});
for (RegistrationItem r : …Run Code Online (Sandbox Code Playgroud) Jackson运行java.time.Instant,默认情况下启用WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS(READ_以及).
杰克逊-数据类型- jsr310
它像这样生成JSON
{ "createDate":1421261297.356000000, "modifyDate":1421261297.356000000 }
在JavaScript中,从传统的millis时间戳(而不是像上面的秒/纳米)那样获得Date要容易得多,比如new Date(1421261297356).
我认为应该有一些理由默认采用纳米方法,那么这是什么原因呢?
groupBy在用双打计算后,我很难为所有人命名.
persons.stream()
.map(p -> (p.getHeight() * p.getWeight()))
.collect(Collectors.groupingBy(Person::getName)));
Run Code Online (Sandbox Code Playgroud)
但Stream<Double>不适用于这些论点.
如何处理整数/双精度然后处理groupBy String?
有什么更好的电话
names.stream().forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
比
names.stream().forEach(n -> System.out.println(n));
Run Code Online (Sandbox Code Playgroud)
尽管事实上您必须编写更少的代码?在Java 8中引入方法引用还有其他优点吗?
说我有以下......
double d = 1.6;
int q = ( ( int ) d );
Run Code Online (Sandbox Code Playgroud)
这总是会根据Java标准丢弃正好小数点,还是可以根据标准(或多或少存在)向上或向下舍入?
初始情况如下:

现在,该树可能很大(例如,我有一棵具有2200万个节点的树)。这里发生的是,我使用jooq / h2后端存储所有节点并执行查询以查找子代。
这意味着在上图中,该节点被标记为可扩展,但尚未填充其子级。它是按需完成的。扩展后,我得到以下信息:

我的问题是,扩张当然需要时间。我想做的是向的图形添加视觉提示,TreeItem以表明它正在加载...
而且我做不到。
好的,首先,对架构进行总体了解:
*Display类实现)是被动视图,其唯一作用是捕获UI事件并将其转发给*Presenter;这些类是“ GUI实现特定的”;*Presenter发生反应,以通过排序这些事件*View类更新*Display;当任务需要一定的时间才能完成,而GUI无法保持交互性时,a BackgroundTaskRunner将用于*Presenter:
*View修改UI以确认任务(在GUI线程上);*View任务完成时(在GUI线程上)修改UI;*View(在GUI线程上)相应地修改UI。使用JavaFX:
*Display类;它由FXML文件定义并从中加载;*View类中定义的所有GUI元素具有可见性*Display。的*View类是事实上的接口; 这使我能够制作此程序的Webapp版本(计划中)。
现在,这段代码的上下文...
的*Presenter,*View并且*Display都涉及到“分析树”标签在上面的图像中可见。
考虑到上面的体系结构,问题在于*View类的实现以及*Display类。
本*Display类有一个init()用来初始化所有相关的JavaFX组件,如果需要的话方法。在这种情况下,TreeView称为parseTree的初始化如下:
@Override
public void init()
{
parseTree.setCellFactory(param …Run Code Online (Sandbox Code Playgroud) 例:
LocalTime time1 = LocalTime.of(12, 30);
LocalTime time2 = LocalTime.of(8, 30);
time1 + time2 // Doesn't work.
time1.plus(time2) // Doesn't work.
Run Code Online (Sandbox Code Playgroud)
因此,我希望以格式(小时:分钟)获得两次(12:30 + 8:30 = 21:00)的总和.
还有其他建议吗?
java-8 ×10
java ×8
java-stream ×2
addition ×1
collections ×1
java-time ×1
javafx ×1
javafx-8 ×1
jpa ×1
lambda ×1
localtime ×1
milliseconds ×1
numbers ×1
standards ×1
timestamp ×1