黑马程序员技术交流社区
标题:
集合问题
[打印本页]
作者:
位俊鹏
时间:
2014-2-28 00:55
标题:
集合问题
定义一个静态方法,该方法可以接收一个List<Integer>,方法内对List进行排序.
//接收Integer类型的,他与int有什么区别吗?
//高手们帮我指点一下吧.
作者:
Amorvos
时间:
2014-2-28 08:52
我给你写了一个,写得不简洁,方便你看。Integer是类,是对象,int只是数据类型
PS:你可以自行修改成你想要的类型
import java.util.ArrayList;
import java.util.List;
public class ListSort {
public static void sort(List<Integer> list) {
int size = list.size();
int[] store = new int[size];
for (int i = 0; i < size; i++) {
store[i] = list.get(i);
}
for (int i = 0; i < size; i++) {
for (int j = i; j < size; j++) {
if (store[i] > store[j]) {
int temp = store[j];
store[j] = store[i];
store[i] = temp;
}
}
}
for(int i = 0 ; i < size ; i++)
{
list.set(i, store[i]);
}
}
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
for (int i = 9; i > 0; i--) {
list.add(i);
}
System.out.println(list);
ListSort.sort(list);
System.out.println(list);
}
}
复制代码
作者:
薛旻
时间:
2014-2-28 09:03
这个代码可以解释一点疑惑
import java.util.*;
class ListSort {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(8);
list.add(22);
list.add(15);
list.add(6);
mySort(list);
for (Integer i : list) {
System.out.println(i);
}
for (int i : list) {
System.out.println(i);
}
}
public static List<Integer> mySort(List<Integer> list) {
Collections.sort(list);
return list;
}
}
复制代码
定义的Integer类型集合,但是我存入的是int数据,没有出问题,这是JDK1.5之后的新特性,自动装箱,它会把int自动做new Integer(int) 的动作,也就是把Int基本数据类型包装成它对应的对象
后面输出时,第二种使用了int也没有出错,就是自动拆箱,java根据类型,自动把Integer类型转为int型了
至于list集合,因为它所操作的元素必须是对象,所以定义类型不能使用int这样的基本数据类型
希望对你有帮助
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2