黑马程序员技术交流社区
标题:
怎样理解List<Integer>
[打印本页]
作者:
雀巢咖啡
时间:
2014-4-16 19:09
标题:
怎样理解List<Integer>
定义一个静态方法,该方法可以接收一个List<Integer>,方法内对List进行排序.
我只知道Integer 类在对象中包装了一个基本类型 int 的值。Integer 类型的对象包含一个 int 类型的字段。
但List<>是什么意思,怎样运用List<>.最好是能给个详细的例子能让我理解其用法,谢了!
作者:
doyxy
时间:
2014-4-16 20:38
List<>里面的是泛型,用来限定List里面可以装的元素,这里就是说只能装Integer,如果存入其他类型的就会报错
作者:
雀巢咖啡
时间:
2014-4-16 21:06
doyxy 发表于 2014-4-16 20:38
List里面的是泛型,用来限定List里面可以装的元素,这里就是说只能装Integer,如果存入其他类型的就会报错 ...
你回答的具体点,最好举个例子。这样才会拿到技术分撒
作者:
doyxy
时间:
2014-4-16 22:25
import java.util.ArrayList;
import java.util.List;
public class temp {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Integer> list = new ArrayList<Integer>();
list.add(10); // 可以加入
list.add("abc"); // 会报错
}
}
复制代码
作者:
左拉
时间:
2014-4-17 14:53
JDK1.5之前List是中的数据类型是按照object接收的,也就是所有的数据转换成object类型存放,之后加入泛型概念,泛型是一种能根据需要确定数据类型的技术。List<E>(随便取名字,E、T比较常见)表示list中的数据类型是泛型,E表示它抽象,定义的时候没有明确指定类型。在实例化的时候再根据需要自己改变,这样可以让List可以存放任意数据的数据。
list<E>的意思就是:当你需要保存基本数据类型的时候,将E改成对应的基本数据类型的包装类。保存整数就用List<Integer>,保存小数用List<Float>,保存字符用List<Character>。。。
当你使用List<Integer>时,就意味着list必须存放Integer对象,不然就会出现数据类型转换异常。
当需要引用数据类型时,用对应的数据类型就可以,如List<String>,自定义的类List<Person>,自定义接口List<Iinterface>,自定义数组List<int[]>等。
当然List本身可以保存Object数据类型,所以也可以不指定泛型。
List list=new ArrayList();
list.add("abc");
这样的语法也不会报错,因为字符串是String对象,可以向Object自动转型,保存基本数据类型也可以自动装箱变成基本数据类型的包装类对象保存,但是这样的用法不规范,因为List本身定义了泛型你却没有使用,这叫泛型的擦除。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2