相关疑难解决方法(0)

如何否定方法引用谓词

在Java 8中,您可以使用方法引用来过滤流,例如:

Stream<String> s = ...;
long emptyStrings = s.filter(String::isEmpty).count();
Run Code Online (Sandbox Code Playgroud)

有没有办法创建一个方法引用,它是对现有方法的否定,即:

long nonEmptyStrings = s.filter(not(String::isEmpty)).count();
Run Code Online (Sandbox Code Playgroud)

我可以创建not如下所示的方法,但我想知道JDK是否提供了类似的东西.

static <T> Predicate<T> not(Predicate<T> p) { return o -> !p.test(o); }
Run Code Online (Sandbox Code Playgroud)

java predicate negate java-8

301
推荐指数
8
解决办法
11万
查看次数

比较java中的两个int字符串

我有两个包含数字的字符串,我想看看第二个字符串是否包含与第一个字符串相同的数字,无论它们是否有序.如果它有任何重复的数字而不是报告错误.除了使用.charAt()之外,在java中是否存在因为它在10之后不适用于数字?

String one = "1 2 3 4 5 "; 
String two = " 3 2 1 4 5 ";
String three = "3 2 1 4 4 "; 
Run Code Online (Sandbox Code Playgroud)

java string compare

5
推荐指数
1
解决办法
3938
查看次数

比较两个xml并使用Java找到丢失的节点

这困扰了我好几天.我只需要通过比较找出第二个xml中缺少的节点.我试过xmlunit,但它并没有真正帮助我找到丢失的节点,因为它逐行比较.两个样本xml如下:xml1:

<test testcase="101">
    <value="1">
    <value="2">
    <value="3">
</test>
Run Code Online (Sandbox Code Playgroud)

XML2:

<test testcase="101">
    <value="3">
    <value="2">
</test>
Run Code Online (Sandbox Code Playgroud)

请注意,value = 3实际上在第二个副本中它只是到达第一个节点,但我仍然认为它没有丢失.我如何找到丢失的节点值="1"?

java xml xmlunit

5
推荐指数
0
解决办法
627
查看次数

在Java中从arraylist查找丢失的项目

嗨,我是Java的新手,正在尝试我的集合部分,我有一个简单的查询,我有两个说出雇员对象的数组列表

class Employee
{
    private int emp_id;
    private String name;
    private List<String> mobile_numbers;

    //.....getters and setters
}
Run Code Online (Sandbox Code Playgroud)

listAlistB拥有以下数据

    List<Employee> listA = new ArrayList<Employee>(); 
    List<Employee> listB = new ArrayList<Employee>(); 

    listA.add(new Employee("101", "E1", listOfMobileNumbers));
    listA.add(new Employee("102", "E2", listOfMobileNumbers1));
    listA.add(new Employee("103", "E3", listOfMobileNumbers2));
    listA.add(new Employee("104", "E4", listOfMobileNumber4));
    listA.add(new Employee("105", "E5", listOfMobileNumbers5));

    listB.add(new Employee("101", "E1", listOfMobileNumbers1));
    listB.add(new Employee("102", "E2", listOfMobileNumbers2));
    listB.add(new Employee("106", "E6", listOfMobileNumber6));
    listB.add(new Employee("107", "E7", listOfMobileNumber7));
    listB.add(new Employee("108", "E8", listOfMobileNumbers8));
Run Code Online (Sandbox Code Playgroud)

这里listOfMobileNumbers是一个List<String>

现在,我想从个人列表中找到其他元素。即

 List<Employee> additionalDataInListA = …
Run Code Online (Sandbox Code Playgroud)

java arraylist difference

3
推荐指数
1
解决办法
8067
查看次数

比较两个arraylists并从那里删除额外的元素

我如何比较两个arraylists?

我有一个sdCoverList数组和thumbnailList数组.

02-04 11:05:05.210: I/System.out(4035): HASHED THUMBNAIL[-2122410790, 2043473787, 1914391068, 1785308349, 1656225630, 1527142911, 1398060192, 1268977473, 1139894754, 1010812035, 1242943301, 1113860582, 984777863, 855695144, 726612425, 597529706, 468446987, 339364268, 210281549]
02-04 11:05:05.210: I/System.out(4035): SD COVER LIST[-2122410790, 2043473787, 1914391068, 1785308349, 1268977473, 1656225630, 1527142911, 1139894754, 1398060192, 1010812035, 1242943301, 1113860582, 984777863, 855695144, 726612425, 597529706, 468446987, 339364268, 210281549, 717409028]
Run Code Online (Sandbox Code Playgroud)

在我的sd封面列表中,我有一个额外的值,我想删除,但首先我必须先与thumbnailList数组进行比较.如果两个都有相同的元素,不要做任何事情,但如果有额外的,将其从SD卡中删除.

我的阵列列表

对于sdCoverList:

// CHECK DIRECTORY BEFORE DELETING THEM
            File strPath = new File(Environment.getExternalStorageDirectory() + folderName+"/Covers");
            File yourDir = new File(strPath, "");
            if(yourDir.length()!=0)
            for (File f : yourDir.listFiles()) {
                if …
Run Code Online (Sandbox Code Playgroud)

android arraylist

2
推荐指数
1
解决办法
3932
查看次数

计算Java 1.4中两个列表的不对称差异

我有两个清单:

List x = [1, 2, 5, 7, 8];
List y = [1, 3, 4, 5];
Run Code Online (Sandbox Code Playgroud)

我试图获得以下计算的不对称差异:

x - y (what's in x that's not in y) => 2 7 8
y - x (what's in y that's not in x) => 3 4
Run Code Online (Sandbox Code Playgroud)

我已经检查了一些关于这个这个的指针,但我背后有一些限制:

  1. 我正在尝试实现的正是guava的Sets.difference所提供的,除了我坚持使用Java 1.4(我很容易将我的实现从使用Lists更改为Sets)

  2. 使用Collection.removeAll/retainAll将是一个交易破坏者,因为这些方法就地工作.我在列表中保存的对象是一些实际映射到Hibernate的重POJOS.

  3. 从这个意义上说,我需要一些基于散列的实现,因为这个计算已经在那些POJOS中实现了.

底线是,是否有类似Java 1.4的Sets实用程序类?或者可以计算两个集合的不对称差异的东西?

java collections set asymmetric guava

1
推荐指数
1
解决办法
2441
查看次数