将int与整数的arraylist进行比较

时间:2014-12-03 17:23:42

标签: java list

我有一个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中的任何数字。

提前致谢

5 个答案:

答案 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;
}

效率不高,但这种方法会使原始列表中的顺序保持不变。