我有一个int元素,我想知道这个int是否高于Arraylist的所有整数?
示例:
int a ; // Contain an int (i.e 51 or 54 or 989...etc)
ArrayList<Integer> list = new ArrayList<Integer>(); // contain a list of Integers
我的目的是知道a是否高于arraylist中的任何数字。
提前致谢
答案 0 :(得分:5)
排序完全矫枉过正。您只需将您的值与列表中的最高值进行比较即可。以下是使用现有库函数执行此操作的方法:
if (a > Collections.max(list)) {
//a is higher than anything in list
}
即使第一个元素大于a
,这也会始终贯穿整个列表。但这是你通常愿意做出的权衡,因为代码读得很好。如果你真的想提前退出,你可以像在Austin的答案中那样推出自己的方法,或者在Java 8中,它看起来像这样:
if ( list.stream().allMatch(element -> a > element) ) {
//...a is higher than anything in list
}
答案 1 :(得分:2)
您可以迭代数组以查看是否有更高的其他值..
int a = _whateverInt ; // Contain an int (i.e 51 or 54 or 989...etc)
ArrayList<Integer> list = new ArrayList<Integer>();
boolean isHigher = true;
for(int i = 0; i < list.size() && isHigher; i ++)
{
isHigher = a > list.get(i);
}
答案 2 :(得分:0)
解决方案1:
public class Test {
public static void main(String[] args) {
int a = 150;
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(50);
arrayList.add(100);
arrayList.add(30);
System.out.println(a > Collections.max(arrayList));
}
}
解决方案2:
public class Test {
public static void main(String[] args) {
int a = 150;
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(50);
arrayList.add(100);
arrayList.add(30);
Collections.sort(arrayList);
System.out.println(a > arrayList.get(arrayList.size() - 1));
}
}
答案 3 :(得分:0)
int a;
ArrayList<Integer> list = new ArrayList<Integer>();
int max = Collections.max(list);
if(a>max)
{
//this is what you want
}
希望你觉得这很有用...... 编辑:oops某人已经回答了同样的伎俩:(
答案 4 :(得分:-2)
private boolean isLargest(int a, ArrayList<Integer> list)
{
ArrayList<Integer> sortedList = Collections.sort(list);
if(a > sortedList.get(0))
return true;
return false;
}
效率不高,但这种方法会使原始列表中的顺序保持不变。