如何比较两个数组的大小和 return 一个更大的数组(不是值或大小)?

How to compare the size of two arrays and return a larger array(not value or size)?

我正在尝试编写一个方法来 return 两个数组中较大的一个。

List<String> firstName = new ArrayList<String>(); // size 50
List<String> lastName = new ArrayList<String>(); // size 1000

我想比较它们的大小和 return 一个更大的数组。像这样。

public List<String> largerArray (List firstName, List lastName) {
return max.size(firstName, lastName);
}
public List<String> largerArray (List firstName, List lastName) {
    return firstName.size() > lastName.size() ? firstName : lastName;
}

虽然你的用例不是很清楚。如果 firstName 是一个列表,那么理想情况下它必须被命名为 firstNames,如果不是这样,那么我不确定你到底想在那里做什么

您可以比较尺寸,然后选择哪个列表return。 另外,在访问实例方法之前,不要忘记检查列表是否不为空 (.size())

public List<?> largerArray (List<?> l1, List<?> l2) {
    int lengthOfL1 = l1 == null ? 0 : l1.size();
    int lengthOfL2 = l2 == null ? 0 : l2.size();

    return (lengthOfL1 > lengthOfL2) ? l1 : l2;
}

注意:通过使用通配符 (?),您可以接受任何两个列表,因此您可以将字符串列表与整数列表进行比较,如果这是您想要的

编写一个静态泛型方法来比较两个相同类型的列表。

List<Integer> list1 = List.of(1,2,3,4);
List<Integer> list2 = List.of(1,2,3,4,5);
    
List<Integer> result = getLargest(list1,list2);
System.out.println(result);

打印

[1, 2, 3, 4, 5]
  • 使用三元运算符进行比较
  • 如果大小相等,returns list2
public static <T> List<T> getLargest(List<T> list1, List<T> list2) {
     Objects.requireNonNull(list1);
     Objects.requireNonNull(list2);
     return list1.size() > list2.size() ? list1 : list2;
}