草庐IT

data-collection

全部标签

java - java.util.Collections.contains() 如何比线性搜索执行得更快?

我一直在胡思乱想各种搜索集合、集合的集合等的不同方法。做了很多愚蠢的小测试来验证我的理解。这是让我感到困惑的一个(源代码在下面)。简而言之,我正在生成N个随机整数并将它们添加到列表中。该列表未排序。然后,我使用Collections.contains()在列表中查找值。我有意寻找一个我知道不会存在的值,因为我想确保整个列表空间都被探测到。我为这次搜索计时。然后我手动进行另一个线性搜索,遍历列表的每个元素并检查它是否与我的目标匹配。我也为这次搜索计时。平均而言,第二次搜索比第一次搜索花费的时间长33%。按照我的逻辑,第一次搜索也必须是线性的,因为列表是未排序的。我能想到的唯一可能性(我立

java - 如何将多个日期间隔搜索与 Spring Data JPA 的 CrudRepository 结合起来?

spring-data提供了一种通过定义方法名来生成SQL搜索的方式。以下工作正常:@EntitypublicclassBook{Datefrom,to;}//CrudRepositoryfindByFromDateBetween(Datedeparture,Datearrival);但是为什么下面的方法不起作用呢?findByFromDateBetweenAndToDateBetween(Datedeparture,Datearrival);要连接两个日期搜索,我必须重复日期:findByFromDateBetweenAndToDateBetween(Datedeparture,Da

java - Spring Data JPA 更新方法

我仍在寻找Spring的DataJPA中的更新方法来更新关系数据库中持久存在的给定Object。我只找到了解决方案,在这些解决方案中,我被迫通过@Query注释(与@Modifying相比)指定某种更新查询,例如:@Modifying@Query("UPDATEUseruSETu.firstname=?1,u.lastname=?2WHEREu.id=?3")publicvoidupdate(Stringfirstname,Stringlastname,intid);为了构建查询,我还必须传递单个参数而不是整个对象。但这正是我想要做的(传递整个对象)。所以,我要寻找的是这样一种方法:p

java - 在实体上使用 lomboks @Data 和 @Builder

我正在使用以下内容:@Entity@Data@Builder@NoArgsConstructor(force=true)publicclassUser{privateStringid;privateStringfirstName;privateStringlastName;}我想要实现的目标:为了使用JPA,我需要一个带有noArgConstructor、getters/setters和equals/hashCode/toString的POJO。对于实例创建(例如在测试中)我想使用User.builder().build();问题:它无法编译,NoArgConstructor与Requ

java - 为什么 Spring Data 存储库方法参数名称在 Java 8 上也不可用?

我很难让spring-boot1.4版本的Pivotal示例项目通过测试fromtheirexamples它显示spring-data-jpa在其JPQL中使用unannotated命名参数例如fromexample.springdata.jpa.simple.SimpleUserRepository@Query("selectufromUseruwhereu.firstname=:firstname")ListfindByFirstname(Stringfirstname);注意它没有使用@Param注解这不能在我的机器上运行。我在这里详细了解了异常,从标题中可以不言自明。Namef

java - 为什么 Collections.sort() 针对 LinkedList 进行了优化,而没有针对 ArrayList 进行优化?

为什么Collections.sort()创建一个额外的对象数组并对数组执行Tim排序,最后将排序后的数组复制回List对象?我知道此调用针对LinkedList进行了优化,但我们不会损失ArrayList的性能吗?我们本可以避免2n次将其转换为对象数组并将它们添加回列表的操作。我知道这些额外的操作不会影响整个排序操作的Big-O,但我相信它可以针对ArrayList进一步优化。我是不是漏掉了什么?我只是想了解为什么架构是这样布局的。谢谢。https://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/clas

java - 使用来自 java 的 scala.collection.immutable.Set 的示例

有没有熟悉Scala的人知道我如何使用scala.collection.immutable.Set来自java?我可以模糊地阅读scaladoc,但我不确定如何从java中调用像“-”这样的scala方法(我假设我只需要在我的类路径中包含一些scala.jar文件......?) 最佳答案 Scala将这些特殊符号写为$plus、$minus等。您可以通过针对scala.collection.immutable.HashSet运行javap来亲眼看到这一点。这允许您执行如下代码:Sets=newHashSet();s.$plus("

java - 在 java.util.Collection 和 java.lang.Iterable 中声明的方法 iterator(),它的超接口(interface)?

有人可以向我解释为什么方法是Iteratoriterator();吗?在java.util.Collection中定义?Collection已经扩展java.lang.Iterable;这种方法是多余的。这是为了方便吗? 最佳答案 CollectioninterfaceJava1.2中引入了CollectionsAPI。iterator方法出现了。然而,Iterableinterface直到Java1.5才被引入。Collection显式定义iterator的原因是因为它早于Iterable。Collection返回Iterator

java - 如何使用 QueryDSL 在 Spring Data JPA 中使用 order by 和 Limit

我在我的项目中使用带有RDBMS的SpringDataJPA。我有一个要求,我必须从具有最新日期的表中的数据库中获取一条记录。为此,我需要使用限制和按功能排序或使用子查询。但是,我想知道我是否希望不使用NamedQuery,有没有一种方法可以使用SpringDataJPA和QueryDSL实现这一点。 最佳答案 难道QueryDslPredicateExecutor.findAll(Predicatepredicate,Pageablepageable)不应该为您解决问题吗?您可以提交一个newPageRequest(0,limit

java - Spring Data MongoDB 索引(唯一=真)

我在使用SpringData时遇到了很多问题和MongoDB当涉及到索引字段时。我已经查看了文档,但他们不太擅长解释@Indexed(unique=true)之间的区别。和@Indexed(unique=false).我有一个我想要索引的字段,以便我可以对其执行快速查询。在这种情况下,电子邮件地址通常应该是唯一的,但emailAddress有可能在一段时间内为空。但是,一旦一个记录为空emailAddress,我就不能再有任何其他记录具有空emailAddress。SpringData拒绝使用null插入任何附加记录电子邮件地址。它无法抛出任何它不起作用的东西。现在我将它设置为uniq