您的位置:首页 > 其它

集合框架-数组与集合互转

2016-05-26 22:05 309 查看

数组和集合类同是容器,有何不同? 数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。 数组中可以对象和存储基本数据类型,集合只能存储对象。

集合框架-数组转成集合
java.util 类 Arrays
* Arrays:用于操作数据的工具类提供了很多常见的方法比如排序,搜索等。
* 该类中的方法都是静态的。

* 数组转成集合 Arrays.asList([]);
* 好处:可以使用集合list的方法来操作数组中的元素。可以使用集合 改查方法,只要不改变数组长度都可以。
* 弊端:不可以使用集合的增删方法。
package cn.itcast.p3.arrays;

import java.util.Arrays;
import java.util.List;

public class ArraysDemo {
public static void main(String[] args) {
//int[] arr = {31,99,5,7,2,65};
//System.out.println(Arrays.toString(arr));

String[] strs = {"abc","hehe","haha","heihei"};
List<String> lists = Arrays.asList(strs);
//lists.add("xixi");//UnsupportedOperationException list集合中使用的最终还是这个数组,
//数组是固定长度的。所以不可以对其进行增删。
System.out.println(lists);
System.out.println(lists.contains("haha"));
//特殊情况:
int[] nums = {45,12,98};
/*
* 如果数组中存储的是基本数据类型值,那么asList会将这个数组实体作为集合中的元素。
* 如果数组中存储的都是对象,那么aslist会将数组中的元素作为集合中的元素。
*/
List<int[]> list = Arrays.asList(nums);//存在集合里面的是 数组这一个元素
System.out.println(list);
Integer[] nums2 = {56,89,100};
List<Integer> list2 = Arrays.asList(nums2);
System.out.println(list2);
}

}


集合框架-集合转成数组

* 集合转成数组
Collection 接口中的方法 toArray();
T[] toArray(T[])
<T> T[] toArray(T[] a)

将集合转成数组
* 如果传递的数组长度小于集合的长度,在toArray内部会自动创建一个长度和集合相同的数组。用于存储集合的元素。
* 如果传递的数组长度大于等于集合的长度,则使用该数组存储集合的元素。
* 一般情况下,数组的长度最好使用集合的size();
*
* 限定对数组元素的更多操作比如增删。

package cn.itcast.p3.arrays;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;

public class ToArray {
public static void main(String[] args) {

Collection<String> coll = new ArrayList<String>();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
String[] arr = coll.toArray(new String[coll.size()]);
System.out.println(Arrays.toString(arr));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: