java数组初始化的简单问题
发布网友
发布时间:2022-04-26 18:07
我来回答
共3个回答
热心网友
时间:2023-10-20 04:34
你这个问题不太好回答
1. 你想要一个数组,长度固定了,如10
2. 你不知道数组具体使用的长度,如上面的10,可能你只使用了6个元素
上面2点不知道描述清楚没,是否是你想解决的问题
提供解决方法,使用List,用list接收数据,排序时,将list转成数组
写了个list示例代码,供参考,如下:
public static void main(String[] args) {
// 用list代替第一个数组
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(3);
list.add(7);
list.add(8);
list.add(4);
// 这里再转成数组
Integer[] arr = (Integer[])list.toArray();
// 下面再排序
}
追问for(int a: arr){
System.out.print(a);
}
我加了一个这个循环输出,怎么这个数组输出不出来?
追答
不好意思,刚才存手打代码,没有测试,有点问题,现在修改了,如下:
不直接转换数组,而是转换数组中的元素:
public static void main(String[] args) {
// 用list代替第一个数组
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(3);
list.add(7);
list.add(8);
list.add(4);
// 这里再转成数组
Object[] arr = list.toArray();
// 下面再排序
for(Object a: arr) {
System.out.println((Integer)a);
}
}
热心网友
时间:2023-10-20 04:35
这种问题一般是用Arrays.copyOf来实现的
static int[]
copyOf(int[] original,
int newLength)
复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。
int a[]=new int[]{1,2,3,9,8,7,5,6,4};
a=Arrays.copyOf(a,a.length+1);
另外,如果你的数组大小经常扩充的话,那么最好有个规则。比如每次都扩充1倍。
热心网友
时间:2023-10-20 04:35
你可以先新建数组,因为数组的长度不可变,需要你手动改变数组长度才能添加数据,数据的插入操作完成后再使用排序方法,这样不就是按递增的顺序排好序了么