草庐IT

Java 流 API : are there syntax sugar for identity functor?

我们使用多个Map作为对象列表上的简单内存DB:classPerson{publicStringid;publicStringphone;publicStringemail;//andget/setandotherfields...}Listpersons;MapemailLookup=persons.stream().collect(Collectors.toMap(Person::getEmail,p->p));MapphoneLookup=persons.stream().collect(Collectors.toMap(Person::getPhone,p->p));Mapid

java - 使用 Java 8 从对象列表中查找中值

我有两个结构如下的类:publicclassCompany{privateListperson;...publicListgetPerson(){returnperson;}...}publicclassPerson{privateDoubleage;...publicDoublegetAge(){returnage;}...}基本上Company类有一个Person对象列表,每个Person对象可以获得一个Age值。如果我得到Person对象的列表,是否有一种好方法可以使用Java8在所有Person对象中找到年龄中值(Stream不支持中值,但还有其他任何东西)?Doublemed

java - 如果我的类在 Java 中实现了可比性,我是否需要 equals 和 Hashcode 方法?

我在canStringBufferobjectsbekeysinTreeSetinJava?上找到了这条评论“Java中的map使用了2种识别策略(或多或少)。散列:将输入“Foo”转换为尽可能最好的尝试,以生成一个唯一访问数组索引的数字。(纯粹主义者,请不要辱骂我,我是故意简化的)。该索引是存储您的值的位置。“Foo”和“Bar”实际上可能生成相同的索引值,这意味着它们都将映射到相同的数组位置。显然这是行不通的,所以这就是“equals()”方法的用武之地;它用于消除歧义比较:通过使用比较方法,您不需要这个额外的消歧步骤,因为比较从一开始就不会产生这种冲突。“Foo”等于的唯一键是“

java - JAVA中如何使静态方法线程安全?

我正在创建Web应用程序并遇到线程安全问题。在阅读了几个类似的问题后,我仍然对我的情况感到困惑。我正在使用javaspring框架来设置RESTweb服务。所有请求(Person对象的JSON)都将传递给checkIfGoodName函数,如Checker.checkIfGoodName(person)。它们都是静态方法调用。我想知道,这个函数Checker.checkIfGoodName线程安全吗?如果不是,如何修改代码?我有如下代码:检查器.javapublicclassChecker{publicstaticvoidcheckIfGoodName(Personperson){ch

java - 从 Java 8 中的列表中提取重复对象

此代码从原始列表中删除重复项,但我想从原始列表中提取重复项->不删除它们(此包名称只是另一个项目的一部分):给定:一个人pojo:packageat.mavila.learn.kafka.kafkaexercises;importorg.apache.commons.lang3.builder.ToStringBuilder;publicclassPerson{privatefinalLongid;privatefinalStringfirstName;privatefinalStringsecondName;privatePerson(finalBuilderbuilder){thi

java - NEO4J 在密码查询中使用数组或集合作为参数

我正在尝试调用密码查询(在java中)传递参数来执行类似的操作:WHEREnode.propertyIN[{param}]完整示例:STARTperson=node:persons('Name:*')MATCHperson->[:Girl]->friendWHEREperson.NameIN[{Names}]ANDfriend.Hair='Blond'RETURNperson.Name,friend.Name对于我尝试使用以下参数:包含字符串的集合包含字符串的数组分隔字符串,如“'JoeBlow','BlowJoe'”我真的认为最后一个会起作用,但我认为参数被替换为单个字符串,即["'

java - 尝试理解 Java 8 中的 lambda 和流

我正在尝试理解Java8中的Lambda。假设我有一个如下所示的Person类:publicclassPersonimplements{Stringname;GenderEnumgender;intage;Listchildren;}现在我想做的是找到所有有10岁以下child的女性。Java8之前我会这样做:ListallPersons=somePeople();ListallFemaleWithChildren=newArrayList();for(Personp:allPersons){for(Personchild:p.getChildren()){if(child.getAg

Java 8 lambdas 多个过滤器调用

使用filter(Predicatepredicate)时在Java8lambda表达式中调用,关于是否将所有Predicate放在一起,我有两种想法一次调用中的逻辑,或链接filter(Predicatepredicate)在适当的地方调用以提高可读性。我假设链接filter(Predicatepredicate)调用会很便宜,因为它们还没有遇到终止符,所以在可读性方面会出错,但我对我对Streams的了解不够自信。API以充分了解权衡是什么。借助于以下示例(考虑过于复杂的谓词),哪个实现更好:ListusingOneFilter或ListusingTwoFilters?import

java - java8 Stream的filter()和map()方法是否使用迭代?

我在Person.java文件中有一个POJO:publicclassPerson{privateStringname;privateintage;publicPerson(Stringn,inta){name=n;age=a;}publicStringgetName(){returnname;}publicintgetAge(){returnage;}publicbooleanisAdult(){returngetAge()>=18;}}然后我有一个Demo.java文件,它创建一个人员列表并使用流来过滤和打印列表中的内容:importjava.util.*;publicclassD

java xml 删除项目

我有一个非常简单的xml文件,我想创建一个简单的函数来从中删除一个项目。这是我的xml文件:Person1Person2Person3Person4我只想调用一个方法从文件中删除一个名字。我对XML不是很熟悉,但确实设法创建了读取器和写入器,但现在我无法创建从文件中删除项目的方法。当我说删除一个项目时,我的意思是:deleteItem("Person3");然后XML文件将更改为:Person1Person2Person4我做错了什么:publicstaticvoidremoveName(StringpersonName)throwsParserConfigurationExcepti