程序找到arraylist中最大的数字

时间:2014-04-02 11:28:51

标签: java arraylist

让我们假设我们在java中有一个包含整数和字符串值的arraylist。我想遍历整个arraylist(只取整数,忽略字符串)来找到列表中最大的数字???我需要一个程序来完成这个任务????请帮帮我

5 个答案:

答案 0 :(得分:2)

假设一个Object ArrayList,像这样的应该工作:

int biggest = Integer.MIN_VALUE;
for (Object item : list) {
    if(item instanceof Integer && (Integer) item > biggest)
        biggest = item;
}

答案 1 :(得分:0)

  1. 不要在列表中保留不同的数据类型。广泛使用泛型。
  2. 你可以使用instanceOf(ArrayList保持整数和字符串)来检查类型并单独放入int并获得最大值。

答案 2 :(得分:0)

private int getLargestNumber(ArrayList<Objects> list){
    int max = Integer.MIN_VALUE;
    for(int i = 0; i < list.size(); i++){
        Object obj = list.get(i);
        if(obj instanceof Integer && max < (Integer) obj)
                max = (Integer)obj;
    }
    return max;
}

答案 3 :(得分:0)

当您将ArrayList对象传递给下面的函数时,它将返回列表中最大的整数..

 public static Integer getLargerInteger(ArrayList list){
    ArrayList temp=new ArrayList<Integer>();
    for (Object object : list) {
        if(object instanceof Integer){
            temp.add(object);
        }
    }
    return Collections.max(temp);
}

答案 4 :(得分:0)

您可以使用比较器接口尝试以下方法,而不是循环遍历所有元素。

    List arr = new ArrayList();
    arr.add(2);
    arr.add(5);
    arr.add(10);
    arr.add(20);
    arr.add("s1");
    arr.add("s2");
    arr.add("s3");

    Collections.sort(arr, new Comparator<Object>() {

        @Override
        public int compare(Object o1, Object o2) {

            if(o1 instanceof Integer && o2 instanceof Integer){
                Integer ob1 = (Integer) o1;
                Integer ob2 = (Integer) o2;
                return ob2.compareTo(ob1);
            }else{
                return -1;
            }
        }

    });
    System.out.println(arr.get(0));