java中set、list与Array转换

来源:互联网 发布:mac版sai没有压感 编辑:程序博客网 时间:2024/04/29 02:52
package list;


import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;


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


List list = new ArrayList();// 创建List列表
// 往List列表中添加数据元素
list.add("北京");
list.add("上海");
list.add("青岛");
list.add("大连");
list.add("浙江");
// 当List中的数据类型都一致时,可以将list转化成数组
// 转化成对象数组时,直接调用toArray方法
Object[] arrObject = list.toArray();
System.out.println("从list转化成的对象数组的长度为: " + arrObject.length);
System.out.println("我们都是Object类型的");
for (int i = 0; i < arrObject.length; i++) {
System.out.print("\t" + arrObject[i]);


}
// 在转化成其他类型的数组时,需要强制类型转换,并且,要使用带参数的toArray方法。
// toArray方法的参数为一个对象数组,将list中的内容放入参数数组中
// 当参数数组的长度小于list的元素个数时,会自动扩充数组的长度以适应list的长度
String[] arrString_1 = (String[]) list.toArray(new String[0]);
System.out.println("\n从list转化成的字符串数组的长度为: " + arrString_1.length);
System.out.println("我们都是String类型的");
for (int i = 0; i < arrString_1.length; i++) {
System.out.print("\t" + arrString_1[i]);


}
// 分配一个长度与list的长度相等的字符串数组。
String[] arrString_2 = (String[]) list.toArray(new String[list.size()]);
System.out.println("\n从list转化成的字符串数组的长度为: " + arrString_2.length);
System.out.println("我们都是String类型的");
for (int i = 0; i < arrString_2.length; i++) {
System.out.print("\t" + arrString_2[i]);


}
list.clear();// 清空List


// 将数组转化成List
// 逐个添加到List
for (int i = 0; i < arrObject.length; i++) {
list.add(arrObject[i]);
}
System.out.println("\n从数组转化成的list的元素个数: " + arrObject.length);
list.clear();// 清空List
// 直接使用Arrays类的asList方法
list = Arrays.asList(arrObject);
for (int i = 0; i < list.size(); i++) {
Object ob = list.get(i);
System.out.print("\t" + ob.toString());
}
System.out.println("\n从数组转化成的list的元素个数: " + arrObject.length);


Set set = new HashSet();
set.add("北京");
set.add("上海");
// Set转化成数组
arrObject = set.toArray();
arrString_1 = (String[]) set.toArray(new String[0]);
arrString_2 = (String[]) set.toArray(new String[set.size()]);


// 数组转换成Set
// 将数组转换成List后,再用List构造Set
set = new HashSet(Arrays.asList(arrObject));
// 将Set清空,然后把数组转换成的List全部add
set.clear();
set.addAll(Arrays.asList(arrString_1));
Iterator ite = set.iterator();
while (true) {
if (ite.hasNext()) {
System.out.print("\t" + ite.next().toString());
} else {
break;
}
}
}


}
原创粉丝点击