让我们假设我们在java中有一个包含整数和字符串值的arraylist。我想遍历整个arraylist(只取整数,忽略字符串)来找到列表中最大的数字???我需要一个程序来完成这个任务????请帮帮我
答案 0 :(得分:2)
假设一个Object ArrayList,像这样的应该工作:
int biggest = Integer.MIN_VALUE;
for (Object item : list) {
if(item instanceof Integer && (Integer) item > biggest)
biggest = item;
}
答案 1 :(得分:0)
答案 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));