黑马程序员技术交流社区
标题:
集合转换成元素
[打印本页]
作者:
ztwztw
时间:
2014-1-3 09:33
标题:
集合转换成元素
private static void sort(List<Integer> list)
{
Integer[] arr = list.toArray(new Integer[list.size()]); /*集合转换成元素不是用list.Array();吗,()里面的是什么意思*/
selectSort(arr);
for(int j = 0;j<arr.length;j++)
list.add(arr[j]);
}
//选择排序
public static void selectSort(Integer[] arr )
{
int j;
for(int i=0;i<arr.length-1;i++)
for(j=i+1;j<arr.length;j++)
if(arr[i]>arr[j])
swap(arr,i,j);
}
public static void swap(Integer[] arr,int i,int j)
{
Integer tem = arr[i];
arr[i] = arr[j];
arr[j] = tem;
}
}
作者:
孩子也孤单
时间:
2014-1-3 10:40
()里面是指定数组类型,把list中的元素封装成指定类型的数组,如果把上面那句改成Integer[] arr = (Integer[])list.toArray();会发生类型转换异常。
作者:
嘿╰_╯往哪里跑
时间:
2014-1-3 11:58
List转换成数组可以使用List的toArray方法,返回一个Object数组。
数组转换成List可以使用Arrays的asList静态方法,得到一个List。
括号里面的意思就是指你返回的数组类型是Integer类型的
如果只写list.toArray(),需要类型强转,返回类型是Object[]
如果写list.toArray(new Integer[list.size]),就不用类型强转了,返回类型是Integer[]
作者:
其LovE斤
时间:
2014-1-3 13:44
list.toArray(new Integer[list.size()]);
<T> T[] toArray(T[] a)
带参数的toArray,返回的数组类型,是参数中数组的类型。就是规定好了,数组中存放的是什么类型的数据。不用强转。如果参数中的数组规定了数组长度,返回的数组长度,就是参数中数组规定好的长度。
如果指定数组能容纳列表(调用该方法的集合所有元素),则在其中返回该列表。
否则,分配具有指定数组的运行时类型和此列表大小的新数组。
如果指定数组能容纳列表,并剩余空间(即数组的元素比列表的多),那么会将数组中紧随列表尾部的元素设置为 null。(只有 在调用者知道列表不包含任何 null 元素时此方法才能用于确定列表的长度)。
Object[] toArray()
不带参数的toArray,返回的数组类型,是Object,数组中存放的数据类型是Object,任意引用类型,需要强转,来明确存放的类型。
返回的数组长度,正好可以放下调用者,就是调用这个方法的集合对象的所有元素。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2