# 1 楼答案 Integer max2( List<Integer> list ){ if(list.size() < 2) throw... Integer[] max = new Integer[]{ list.get(0), list.get(1) }; if( max[0] < max[1] ){ max[0] = max[1]; max[1] = list.get(0); } return maxdo( list, 2, max ); } Integer maxdo( List<Integer> list, int pos, Integer[] max ){ if( pos >= list.size() ) return max[1]; Integer next = list.get(pos); if( next > max[0] ){ max[1] = max[0]; max[0] = next; } else if( next > max[1] ){ max[1] = next; } return maxdo( list, pos+1, max ); } 没有经过测试,没有用javac尝试过,但我想你会明白的
# 2 楼答案 先排序 然后,获取ArrayList中的第二个 例如: ArrayList<Integer> arrayList = new ArrayList<Integer>(); arrayList.add(1000); arrayList.add(10220); arrayList.add(990); Collections.sort(arrayList); System.out.println(arrayList.get(arrayList.size() - 2));
# 1 楼答案
没有经过测试,没有用javac尝试过,但我想你会明白的
# 2 楼答案
先排序
然后,获取ArrayList中的第二个
例如: