如何比较两个数组的大小和 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;
}
我正在尝试编写一个方法来 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;
}