Java中数组与LinkedList的相互转换

数组,LinkedList:双向链表
数组便于查找,链表便于插入。两个各有千秋,讲两者之间的优点的博客很多,但是怎样转换的博客却少见。所以在这里,我只是总结一下,Java中怎样调用类库函数,完成两者间相互转换。

数组转LinkedList

LinkedList linklist=new LinkedList(Arrays.asList(array));

LinkedList转数组

方法一:String[]  array1= (String[]) linklist.toArray(new String [0]);


方法二:String[] array2= new String[linklist.size()];
       linklist.toArray(array2); 

数组转换链表的是调用了Arrays.asList方法

static List asList(T… a)
返回由指定数组支持的固定大小的列表。

链表转数组有两个方法的原因LinkedList的两种toArray方法:

Object[] toArray()
以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。

T[] toArray(T[] a)
以正确的顺序返回一个包含此列表中所有元素的数组(从第一个到最后一个元素); 返回的数组的运行时类型是指定数组的运行时类型。

测试的代码

		String[] planets=new String[]{"Mecury","Venus","Earth","Mars","Jupiter","Saturn","Uranus","Neptune"};
         LinkedList linklisted=new LinkedList(Arrays.asList(planets));

        linklisted.add(3,"Position");
        System.out.println("linkdelist"+linklisted.toString());

        String[] newPlanets1= (String[]) linklisted.toArray(new String [0]);
        System.out.println("ArrayList1"+Arrays.toString(newPlanets1));

        String[] newPlanets2= new String[linklisted.size()];
        linklisted.toArray(newPlanets2);
        System.out.println("ArrayList2"+Arrays.toString(newPlanets2));

测试结果

linkdelist[Mecury, Venus, Earth, Position, Mars, Jupiter, Saturn, Uranus, Neptune]
ArrayList1[Mecury, Venus, Earth, Position, Mars, Jupiter, Saturn, Uranus, Neptune]
ArrayList2[Mecury, Venus, Earth, Position, Mars, Jupiter, Saturn, Uranus, Neptune]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值