您的位置:首页 > 其它

常见的数组之间的转换。List Set Array!

2010-03-03 14:18 423 查看
package cn.vicky.unit;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class ArrayTest {

public static void main(String[] args) {
// Array -> Array
String[] s = { "1", "2", "3", "4", "5", "5" };
String[] news = new String[s.length - 1];
System.arraycopy(s, 1, news, 0, news.length);
for (int i = 0; i < news.length; i++) {
System.out.println(news[i]);
}

System.out.println("--------------------------------------");

// Array -> List
List newList = Arrays.asList(news);
// newList.add("6"); // 这样获取的List无法add对象
System.out.println(newList);

System.out.println("--------------------------------------");

// Array -> Set
Set newSet = new HashSet(Arrays.asList(news));
System.out.println(newSet);

System.out.println("--------------------------------------");

List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
// System.arraycopy(list, 1, news, 0, news.length); 抛: java.lang.ArrayStoreException
news = list.toArray(new String[list.size()]);
for (int i = 0; i < news.length; i++) {
System.out.println(news[i]);
}

System.out.println("--------------------------------------");

Set<String> set = new HashSet<String>(); // set无法保存数组的顺序
set.add("1");
set.add("2");
set.add("3");
set.add("4");
set.add("5");
set.add("5"); // 重复
set.add("5"); // 重复
// System.arraycopy(set, 1, news, 0, news.length); 抛: java.lang.ArrayStoreException
news = set.toArray(new String[set.size()]);
for (int i = 0; i < news.length; i++) {
System.out.println(news[i]);
}

System.out.println("--------------------------------------");

// set -> List
List list2 = new ArrayList(set);
list2.add("6");
list2.add("6"); // 重复
System.out.println(list2);

System.out.println("--------------------------------------");

// List -> Set
Set set2 = new HashSet(list2); // 自动删除重复的
set2.add("7");
System.out.println(set2);

System.out.println("--------------------------------------");

// Map
Map<String, String> map = new HashMap<String, String>();
map.put("k-1", "v-1");
map.put("k-2", "v-2");
map.put("k-3", "v-3");
map.put("k-4", "v-4");
map.put("k-5", "v-5");
System.out.println(map.keySet()); // 与加入数据顺序相反
System.out.println(map.values());
System.out.println(map.entrySet());
}
}


打印:

2
3
4
5
5
--------------------------------------
[2, 3, 4, 5, 5]
--------------------------------------
[3, 2, 5, 4]
--------------------------------------
1
2
3
4
5
--------------------------------------
3
2
1
5
4
--------------------------------------
[3, 2, 1, 5, 4, 6, 6]
--------------------------------------
[3, 2, 1, 7, 6, 5, 4]
--------------------------------------
[k-5, k-4, k-3, k-2, k-1]
[v-5, v-4, v-3, v-2, v-1]
[k-5=v-5, k-4=v-4, k-3=v-3, k-2=v-2, k-1=v-1]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: