java中将txt转换为数组_在Java中将列表转换为数组

回答(12)

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

我遇到了解决它的代码片段 .

//Creating a sample ArrayList

List list = new ArrayList();

//Adding some long type values

list.add(100l);

list.add(200l);

list.add(300l);

//Converting the ArrayList to a Long

Long[] array = (Long[]) list.toArray(new Long[list.size()]);

//Printing the results

System.out.println(array[0] + " " + array[1] + " " + array[2]);

转换的工作原理如下:

它创建一个新的Long数组,其大小与原始列表相同

它使用新创建的ArrayList将原始ArrayList转换为数组

它将该数组转换为Long数组(Long []),我恰当地命名为'array'

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

您可以使用toArray()api,如下所示,

ArrayList stringList = new ArrayList();

stringList.add("ListItem1");

stringList.add("ListItem2");

String[] stringArray = new String[stringList.size()];

stringArray = stringList.toArray(stringList);

数组中的值是,

for(String value : stringList)

{

System.out.println(value);

}

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

对于ArrayList,以下工作原理:

ArrayList list = new ArrayList();

//... add values

Foo[] resultArray = new Foo[list.size()];

resultArray = list.toArray(resultArray);

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

我没有Java 8的最好的事情是:

public static T[] toArray(List list, Class objectClass) {

if (list == null) {

return null;

}

T[] listAsArray = (T[]) Array.newInstance(objectClass, list.size());

list.toArray(listAsArray);

return listAsArray;

}

如果有人有更好的方法来做到这一点,请分享:)

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

或者:

Foo[] array = list.toArray(new Foo[list.size()]);

要么:

Foo[] array = new Foo[list.size()];

list.toArray(array); // fill the array

请注意,这仅适用于引用类型的数组 . 对于基本类型的数组,使用传统方式:

List list = ...;

int[] array = new int[list.size()];

for(int i = 0; i < list.size(); i++) array[i] = list.get(i);

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

这是有效的 . 的种类 .

public static Object[] toArray(List> a) {

Object[] arr = new Object[a.size()];

for (int i = 0; i < a.size(); i++)

arr[i] = a.get(i);

return arr;

}

然后是主要方法 .

public static void main(String[] args) {

List list = new ArrayList() {{

add("hello");

add("world");

}};

Object[] arr = toArray(list);

System.out.println(arr[0]);

}

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

Java 8中的替代方案:

String[] strings = list.stream().toArray(String[]::new);

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

这(Ondrej的回答):

Foo[] array = list.toArray(new Foo[0]);

这是我看到的最常见的习语 . 那些建议你使用实际列表大小而不是“0”的人误解了这里发生的事情 . toArray调用不关心给定数组的大小或内容 - 它只需要它的类型 . 如果采用实际类型会更好,在这种情况下,“Foo.class”会更加清晰 . 是的,这个习惯用法生成一个虚拟对象,但包含列表大小只是意味着你生成一个更大的虚拟对象 . 同样,该对象不以任何方式使用;它只是需要的类型 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

试试这个:

List list = new ArrayList();

list.add("Apple");

list.add("Banana");

Object[] ol = list.toArray();

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

我认为这是最简单的方法:

Foo[] array = list.toArray(new Foo[0]);

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

import java.util.ArrayList;

public class CopyElementsOfArrayListToArrayExample {

public static void main(String[] args) {

//create an ArrayList object

ArrayList arrayList = new ArrayList();

//Add elements to ArrayList

arrayList.add("1");

arrayList.add("2");

arrayList.add("3");

arrayList.add("4");

arrayList.add("5");

/*

To copy all elements of java ArrayList object into array use

Object[] toArray() method.

*/

Object[] objArray = arrayList.toArray();

//display contents of Object array

System.out.println("ArrayList elements are copied into an Array.

Now Array Contains..");

for(int index=0; index < objArray.length ; index++)

System.out.println(objArray[index]);

}

}

/*

Output would be

ArrayList elements are copied into an Array. Now Array Contains..

1

2

3

4

5

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

tiendas = new ArrayList(tiendasList);

所有集合实现都有一个重载的构造函数,它接受另一个集合(模板 匹配) . 使用传递的集合实例化新实例 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值