首页 > Java > 在Java中将 ArrayList 转换为 String[] 数组

在Java中将 ArrayList 转换为 String[] 数组

上一篇 下一篇

在Java中将“ArrayList<String>转换为”String[]“ 

我在 android 环境中工作并尝试了以下代码,但它似乎不起作用。

String [] stockArr = (String[]) stock_list.toArray();

如果我定义如下:

String [] stockArr = {"hello", "world"};

它有效。我错过了什么吗?

分割线

网友回答:

试试这个

String[] arr = list.toArray(new String[list.size()]);

分割线

网友回答:

像这样使用。

List<String> stockList = new ArrayList<String>();
stockList.add("stock1");
stockList.add("stock2");

String[] stockArr = new String[stockList.size()];
stockArr = stockList.toArray(stockArr);

for(String s : stockArr)
    System.out.println(s);

分割线

网友回答:

正在发生的事情是创建一个而不是一个,因此类型转换失败了1stock_list.toArray()Object[]String[]

正确的代码是:

  String [] stockArr = stockList.toArray(new String[stockList.size()]);

甚至

  String [] stockArr = stockList.toArray(new String[0]);

有关更多详细信息,请参阅 javadocs 以了解 的两个重载。List.toArray

后一个版本使用零长度数组来确定结果数组的类型。(令人惊讶的是,这样做比预分配更快……至少,对于最近的Java版本。有关详细信息,请参阅 https://stackoverflow.com/a/4042464/139985。

从技术角度来看,此 API 行为/设计的原因是该方法的实现在运行时没有信息。它只知道原始元素类型是 。相比之下,在另一种情况下,数组参数提供数组的基本类型。(如果提供的数组足够大以容纳列表元素,则使用它。否则,将分配相同类型和更大大小的新数组,并作为结果返回。List<T>.toArray()<T>Object


1 – 在 Java 中,对象 [] 与字符串 [] 不兼容赋值。如果是,那么您可以这样做:

    Object[] objects = new Object[]{new Cat("fluffy")};
    Dog[] dogs = (Dog[]) objects;
    Dog d = dogs[0];     // Huh???

这显然是无稽之谈,这就是为什么数组类型通常不兼容赋值的原因。

模板简介:该模板名称为【在Java中将 ArrayList 转换为 String[] 数组】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Java】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 305次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 02-24
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信文章 单页式简历模板 微信图片 html5 微信素材 响应式 自适应 微信模板 微信公众平台 企业网站
您可能会喜欢的其他模板