java - 当一个列表不稳定时如何比较两个列表的顺序

标签 java arrays list

我有一些字符串对象存储在列表中,

例如:[美国、中国、印度、英国、法国、希腊、波兰、墨西哥]

并且预期列表的顺序应该始终与上面的列表相同。

但问题是,我用来比较的列表有时没有任何上述国家/地区代码...

例如,我要比较的列表是 [US、CN、EN、GR、PL、MX]

但它应该通过并返回 true,因为它的顺序与第一个列表相同。

如果列表类似于 [CN、US、EN、GR、PL、MX],则应该失败,因为 CN 位于 US 之前。

列表是否包含所有值并不重要,即使我们跳过某些国家/地区代码,如果其他国家/地区代码的顺序正确,它也应该通过

请告诉我最好的方法是什么?

最佳答案

您可以从列表中删除所有项目进行检查,然后比较两个列表:

public static boolean check(String checkedAgainst, String items) {
    List<String> checkedAgainstList = new ArrayList<>(Arrays.asList(checkedAgainst.split("\\s*,\\s*")));
    List<String> list = Arrays.asList(items.split("\\s*,\\s*"));
    checkedAgainstList.retainAll(list);
    return checkedAgainstList.equals(list);
}

测试:

boolean valid = check("US, CN , IN, EN, FR, GR, PL, MX", "US, CN, EN, GR,PL, MX"); // true

关于java - 当一个列表不稳定时如何比较两个列表的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52009262/

相关文章:

python - 什么是 Python 的列表[ :x] in C++? 的等价物

javascript - 如何获取json对象标题

PHP获取文件夹/子文件夹中每个文件的路径到数组中?

python - 使用包含字典值的元素对列表进行排序

java - 如何编写java程序推送邮件

在两个数组中查找唯一元素索引的 Pythonic 方法

python - 将递归解决方案写入列表

java - 循环遍历数组并以特定方式列出

Java Swing : Focus issue

数组上的 Java 注释目标 ElementType.TYPE_USE