java中 我想把集合转化为数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中 我想把集合转化为数组相关的知识,希望对你有一定的参考价值。

java中 我想把集合转化为数组List<String> list=new ArrayList
String[] str=(String [])list.toArray
为什么前面语言添加String[]
是java规定的还是有什么特殊原因吗?
toArray不就是将集合转化为数组吗?
为什么还要强转呢?


List<String> list=new ArrayList<String>();
list.add("aa");
list.add("bb");

String[] targetArr=new String[list.size()];
list.toArray(targetArr);
for(String s:targetArr)
System.out.println(s);

推荐上面这样写。要是按你那这样写的话,转完是Object[] arr,如果这个时候你把它强制转为String[] 类型会报错。

参考技术A list.toArray()返回的是Object[]对象,所以要强制转换成String[]才能赋值给String[] str 参考技术B String[] str=list.toArray;你直接这样写的时候报错了额然后你加了强转(String [])对吧?
首先你的list集合要是里面有数据的话 你可以尝试这样写String[] str=list.toArray(new String[list.size()]); 看看行不行追问

我知道这么写是可以的 我想知道第一种为啥不行

追答

有人回答了呢 toArray()返回的不是string型的数组 要强制转换

追问

嗯嗯 谢谢了

在Laravel中将数组转换为集合

我在PHP中有以下数组:

[
  {
     "website": "example",
     "url": "example.com"
  },
  {
     "website": "example",
     "url": "example.com"
  }
]

现在我想把它转换成一个集合,所以我按键websiteurl排序。但是当我这样做时:

$myArray = collect(websites);

我得到了这个:

 {
      "0": {
         "website": "example",
         "url": "example.com"
      },
      "1": {
         "website": "example",
         "url": "example.com"
      }
    }

并且排序不起作用,我想知道我做错了什么以及如何修复它所以我有一个我可以轻松排序的对象的数组集合。

编辑:我希望输出与此相同:

[
  {
     "website": "example",
     "url": "example.com"
  },
  {
     "website": "example",
     "url": "example.com"
  }
]

通过“排序不起作用”我的意思是项目没有排序。

答案

如果你有

$collection = collect([
    (object) [
        'website' => 'twitter',
        'url' => 'twitter.com'
    ],
    (object) [
        'website' => 'google',
        'url' => 'google.com'
    ]
]);

然后,将您的数组包装在Collection类的实例中。这意味着它的行为不像典型的数组( - 它将像数组一样,但不要像对待它一样 - )直到你在它上面调用all()toArray()。要删除任何添加的索引,您需要使用values()

$sorted = $collection->sortBy('website');

$sorted->values()->all();

预期产量:

[
     {#769
       +"website": "google",
       +"url": "google.com",
     },
     {#762
       +"website": "twitter",
       +"url": "twitter.com",
     },
]

请参阅文档https://laravel.com/docs/5.1/collections#available-methods

toArray方法将集合转换为普通的PHP数组。如果集合的值是Eloquent模型,则模型也将转换为数组。

all方法返回集合表示的底层数组。

以上是关于java中 我想把集合转化为数组的主要内容,如果未能解决你的问题,请参考以下文章

将泛型List<?> data集合转化为数组、Map

Java 向数组中添加一个元素

Java中Set 和List两个集合怎样互相转化

Java中Set 和List两个集合怎样互相转化

java 集合重要概念(Collection ,迭代器 增强for)

java 集合重要概念(Collection ,迭代器 增强for)