一面试题要求把静态数组里面的数字进行排序, 我想直接调用java提供的sort()方法, 在eclipse中调试, 提示我红色代码错误, 请问高手这是怎么回事? 数组怎么转换成ArrayList?package Test;import java.util.*;
import java.util.Collections;public class TestSort {
public static void main(String[] args) {
int[] a={1,2,0,6,12,3,123,83,32};
List list=new ArrayList();
for (int i=0;i<a.length;i++){
list.add(a[i], list); //写成list.add(a[i])不行, eclipse自动帮忙加上的 }
Collections.sort(list);
System.out.println(list); }}
import java.util.Collections;public class TestSort {
public static void main(String[] args) {
int[] a={1,2,0,6,12,3,123,83,32};
List list=new ArrayList();
for (int i=0;i<a.length;i++){
list.add(a[i], list); //写成list.add(a[i])不行, eclipse自动帮忙加上的 }
Collections.sort(list);
System.out.println(list); }}
所以要这样写:
Integer[] a={new Integer(2),new Integer(1)};
List list = Arrays.asList(a);
Collections.sort(list);
System.out.println(list);
[1, 2]
[0, 1, 2]
[0, 1, 2, 6]
[0, 1, 2, 6, 12]
[0, 1, 2, 3, 6, 12]
[0, 1, 2, 3, 6, 12, 123]
[0, 1, 2, 3, 6, 12, 83, 123]
[0, 1, 2, 3, 6, 12, 32, 83, 123]
而楼主估计使用的是JDK1.4或一下的版本,不支持自动装箱。List的add方法使用一个Object作为参数,所以3楼是正解。建议楼主先看看Java的基本知识,再读一读JDK的api文档
“我想直接调用java提供的sort()方法, 在eclipse中调试, 提示我红色代码错误, 请问高手这是怎么回事? ”而不是怎么写一个方法高效的实现排序。iisbocai 觉得对吗?
用的着搞那么多吗?
如果平时写程序到是无所谓,可是面试是不一样的。
人家要的不是拐了九九八十一弯写出来的程序,而是要程序的执行效率高和内存的消耗少。
他提出的问题上面已经有人回答了。我只是做个提醒而已。
楼上的别激动。
import java.util.Collections; public class TestSort { public static void main(String[] args) {
int[] a={1,2,0,6,12,3,123,83,32}; List list=new ArrayList();
for (int i=0;i <a.length;i++){
list.add(new Integer(a[i]));
Collections.sort(list);
System.out.println(list);
}
} 输出结果为:
[1]
[1, 2]
[0, 1, 2]
[0, 1, 2, 6]
[0, 1, 2, 6, 12]
[0, 1, 2, 3, 6, 12]
[0, 1, 2, 3, 6, 12, 123]
[0, 1, 2, 3,6, 12, 83, 123]
[0, 1, 2, 3, 6, 12, 32, 83, 123]
Arrays.sort()和Collections.sort()区别是什么?
我是这样理解的: Arrays.sort()静态数组排序, Collections.sort()动态数组排序, 不知有没错?
import java.util.Arrays;
import java.util.List;
public class TestSort {
public static void main(String[] args) {
int[] a={1,2,0,6,12,3,123,83,32};
List list = Arrays.asList(a);
System.out.println(list); }
}结果如下:
[[I@f6a746]请问大虾这个为什么?(我用的MyEclipse5.5+jdk1.5)
如果确实是用API的话,我建议你是用专门针对数组的类Arrays,Collections这个类处理数组时我用的不太多,个人比较习惯于Arrays,里面也有sort方法
List list=new ArrayList();
for (int i=0;i <a.length;i++){
list.add(a[i], list); //写成list.add(a[i])不行, eclipse自动帮忙加上的 }
这代码有问题,建议你是用for-each完整代码如下
public void invoke(int arr[]) {
List list = new ArrayList();
for(int num : arr)
list.add(num);
Collections.sort(list);
// 打印看效果
for(Object obj : list)
System.out.print(obj + " ");
}