本帖最后由 施大勇 于 2013-9-18 15:42 编辑
import java.util.*;
class ListTest1
{
/*
在主方法中将集合变成数组,并清空集合,将排序好的数组再赋给集合,在主方法中打印集合,完成了集合中对象的排序。
*/
public static void main(String args[]){
List<Integer>list=new ArrayList<Integer>();
list.add(1);
list.add(9);
list.add(5);
list.add(3);
printList(list);
Integer[] intarr=list.toArray(new Integer[list.size()]);
Arrays.sort(intarr);
list.clear();
list=Arrays.asList(intarr);
printList(list);
}
public static void printList(List <Integer> list){
Iterator<Integer>it=list.iterator();
while (it.hasNext())
{
Integer i=it.next();
System.out.print(i+"\t");
}
System.out.println();
}
}
class ListTest2
{
/*
通过方法将集合中的对象排序,在主方法中打印排序后的集合,完成了集合排序任务。
*/
public static void main(String args[]){
List<Integer>list=new ArrayList<Integer>();
list.add(1);
list.add(9);
list.add(5);
list.add(3);
printList(list);
listSort(list);
printList(list);
}
/*在方法中操作集合通过for循环将数组中的元素添加到集合中,可以完成任务。*/
public static void listSort(List<Integer> list){/*引用传递成功。*/
Integer[] intarr=list.toArray(new Integer[list.size()]);
Arrays.sort(intarr);
list.clear();
for (int i=0;i<intarr.length ;i++ )
{
list.add(intarr);
}/*这里的list操作保存结果能够到达主方法。*/
}
public static void printList(List <Integer> list){
Iterator<Integer>it=list.iterator();
while (it.hasNext())
{
Integer i=it.next();
System.out.print(i+"\t");
}
System.out.println();
}
}
/*通过方法操作集合,但集合操作后并没有结果保存到主方法中的集合中。为什么?*/
class ListTest3
{
public static void main(String args[]){
List<Integer>list=new ArrayList<Integer>();
list.add(1);
list.add(9);
list.add(5);
list.add(3);
printList(list);
listSort(list);
printList(list);
}
public static void listSort(List<Integer> list){/*这里的操作结果没有传回主方法。*/
Integer[] intarr=list.toArray(new Integer[list.size()]);
Arrays.sort(intarr);
list.clear();
list=Arrays.asList(intarr);
//printList(list);
}
public static void printList(List <Integer> list){
Iterator<Integer>it=list.iterator();
while (it.hasNext())
{
Integer i=it.next();
System.out.print(i+"\t");
}
System.out.println();
}
}
/*为什么引用传递功能在第三种方案中不能通过呢?求大侠指点。*/ |