首页 > 编程语言 > 详细

java编程思想笔记20170215

时间:2017-02-15 14:59:56      阅读:166      评论:0      收藏:0      [点我收藏+]
import java.util.ArrayList;
import java.util.List;

public class Test {

    public static void main(String[] args) {
        
        List<String> list = new ArrayList<String>(); 
        list.add("1"); 
        list.add("2"); 
        String[] tt =(String[]) list.toArray(new String[0]); 

    }

}

 这段代码是没问题的,但我们看到String[] tt =(String[]) list.toArray(new String[0]) 中的参数很奇怪,然而去掉这个参数new String[0]却在运行时报错。。。

 list.toArray()返回的是一个Object[]类型的,按理说,该容器中的元素已经用泛型限制了,那里面的元素就应该被当作泛型类型的来看了,然而在目前的java中却不是的,当直接String[] tt =(String[]) list.toArray()时,运行报错。原因是容器的类型已经强制转过来了,然而容器中的元素类型却没有转过来,所以运行时报错。

这是在看代码(ListFeatures.java)拥有的一个疑问:

Pet[] pa = pets.toArray(new Pet[0]);

new Pet[0]仅仅就是一个类型提示的作用吧

 

另外, subList()所产生的列表的幕后就是初始列表,因此,对所返回的列表的修改都会反映到初始列表中,反之亦然。

例如,改变subList()返回列表的顺序,原始列表相应部分的顺序也改变了

 

java编程思想笔记20170215

原文:http://www.cnblogs.com/919czzl/p/6401165.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!