在Java中,应该使用ArrayList <Long>还是long []吗? - java

我正在编写一个程序,该程序接受400个类型为long的数字,并将根据运行时的条件修改其中的一些,我想知道是使用ArrayList<Long>还是long[]

使用哪个会更快?我正在考虑使用long[],因为大小是固定的。

参考方案

固定大小时,long[]更快,但是由于它没有实现List接口,因此它允许的API维护性较差。

请注意,由于以下两个原因,long[]速度更快:

使用原始的long而不是框对象Long(还可以实现更好的缓存性能,因为long是连续分配的,并且不能保证Long进行分配)
数组是更简单,更有效的DS。

但是,为了简化维护,我将使用List<Long>,除非在程序的这一部分中对性能至关重要。

如果您经常在一个紧密的循环中使用此集合-并且您的分析器说这确实是一个瓶颈-那么我将改用效率更高的long[]

合并List <T>和List <Optional <T >> - java

鉴于: List<Integer> integers = new ArrayList<>(Arrays.asList( 10, 12 )); List<Optional<Integer>> optionalIntegers = Arrays.asList( Optional.of(5), Optional.em…

实例化类型<?>的泛型类 - java

我正在为SCJP / OCPJP学习,并且遇到了一个对我来说很奇怪的示例问题。该示例代码实例化了两个通用集合:List<?> list = new ArrayList<?>(); List<? extends Object> list2 = new ArrayList<? extends Object>(); …

OpenShift构建错误:无法在多模块Maven Spring启动项目的父模块中导入子模块类 - java

我有一个使用spring的多模块Maven项目。通用模块类用作业务模块项目中的直接导入。我可以在本地PC上编译并成功运行它们。当我在OpenShift中部署相同的模块时,出现错误,无法在业务模块中导入通用模块类。项目结构可以总结如下:项目根 通用模块 src pom.xml 业务模块 src pom.xml pom.xml父POM:<?xml vers…

无法在Maven surefire中运行多个执行? - java

我想运行名称以ResourceTest.java结尾的测试类,因此我在执行后定义了它们。<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <co…

如何告诉Checker遗留方法将接受Nullable类型? - java

考虑一下:@Nullable Object obj = null; Optional<Object> optional = Optional.ofNullable(obj); 这会失败,因为检查器框架假定ofNullable无法接受null值(毕竟,其参数未标记为@Nullable)。有没有办法告诉Checker-framework这个方法(或我…