Java 集合转换(数组、List、Set、Map相互转换)

转自:http://blog.csdn.net/top_code/article/details/10552827

  1 package com.example.test;
  2
  3 import java.util.ArrayList;
  4 import java.util.Arrays;
  5 import java.util.HashMap;
  6 import java.util.HashSet;
  7 import java.util.List;
  8 import java.util.Map;
  9 import java.util.Set;
 10
 11 public class ConvertorTest {
 12
 13     /**
 14      * @param args
 15      */
 16     public static void main(String[] args) {
 17
 18         testList2Array();
 19         testArray2List();
 20         testSet2List();
 21         testList2Set();
 22         testSet2Array();
 23         testArray2Set();
 24         testMap2Set();
 25         testMap2List();
 26     }
 27
 28     private static void testMap2List() {
 29
 30         Map<String, String> map = new HashMap<String, String>();
 31         map.put("A", "ABC");
 32         map.put("K", "KK");
 33         map.put("L", "LV");
 34
 35         // 将Map Key 转化为List
 36         List<String> mapKeyList = new ArrayList<String>(map.keySet());
 37         System.out.println("mapKeyList:"+mapKeyList);
 38
 39         // 将Map Key 转化为List
 40         List<String> mapValuesList = new ArrayList<String>(map.values());
 41         System.out.println("mapValuesList:"+mapValuesList);
 42
 43     }
 44
 45     private static void testMap2Set() {
 46
 47         Map<String, String> map = new HashMap<String, String>();
 48         map.put("A", "ABC");
 49         map.put("K", "KK");
 50         map.put("L", "LV");
 51
 52         // 将Map 的键转化为Set
 53         Set<String> mapKeySet = map.keySet();
 54         System.out.println("mapKeySet:"+mapKeySet);
 55
 56         // 将Map 的值转化为Set
 57         Set<String> mapValuesSet = new HashSet<String>(map.values());
 58         System.out.println("mapValuesSet:"+mapValuesSet);
 59     }
 60
 61     private static void testArray2Set() {
 62
 63         String[] arr = {"AA","BB","DD","CC","BB"};
 64
 65         //数组-->Set
 66         Set<String> set = new HashSet<String>(Arrays.asList(arr));
 67         System.out.println(set);
 68     }
 69
 70     private static void testSet2Array() {
 71         Set<String> set = new HashSet<String>();
 72         set.add("AA");
 73         set.add("BB");
 74         set.add("CC");
 75
 76         String[] arr = new String[set.size()];
 77         //Set-->数组
 78         set.toArray(arr);
 79         System.out.println(Arrays.toString(arr));
 80     }
 81
 82     private static void testList2Set() {
 83
 84         List<String> list = new ArrayList<String>();
 85         list.add("ABC");
 86         list.add("EFG");
 87         list.add("LMN");
 88         list.add("LMN");
 89
 90         //List-->Set
 91         Set<String> listSet = new HashSet<String>(list);
 92         System.out.println(listSet);
 93     }
 94
 95     private static void testSet2List() {
 96
 97         Set<String> set = new HashSet<String>();
 98         set.add("AA");
 99         set.add("BB");
100         set.add("CC");
101
102         //Set --> List
103         List<String> setList = new ArrayList<String>(set);
104         System.out.println(setList);
105     }
106
107     private static void testList2Array() {
108         //List-->数组
109         List<String> list = new ArrayList<String>();
110         list.add("AA");
111         list.add("BB");
112         list.add("CC");
113         Object[] objects = list.toArray();//返回Object数组
114         System.out.println("objects:"+Arrays.toString(objects));
115
116         String[] arr = new String[list.size()];
117         list.toArray(arr);//将转化后的数组放入已经创建好的对象中
118         System.out.println("strings1:"+Arrays.toString(arr));
119     }
120
121     private static void testArray2List() {
122         //数组-->List
123         String[] ss = {"JJ","KK"};
124         List<String> list1 = Arrays.asList(ss);
125         List<String> list2 = Arrays.asList("AAA","BBB");
126         System.out.println(list1);
127         System.out.println(list2);
128     }
129
130 }
时间: 2024-10-28 15:36:01

Java 集合转换(数组、List、Set、Map相互转换)的相关文章

Java 集合与数组之间的转换

Java 集合与数组之间的转换 @author ixenos 数组转集合 Arrays.asList(T... a) 先给结论:用 Arrays.asList(T... a) 将数组转换成集合 (T...a)是可变参数,看成(T[] a)即可 <T> List<T> asList(T... a) 返回一个受指定数组支持的固定大小的列表,这是披着List外表的纯数组,只是原数组的一个视图(对返回列表的更改会“直接写”到数组.) 返回的列表是可序列化的,并且实现了 RandomAcce

java集合List、Set、Map总结 + HashMap/Hashtable区别

List:(有序,可以重复)通过下标索引 ----ArrayList  可变数组,随机查找 ----LinkedList    链表,任何位置插入删除快 ----Vector    效率比arraylist低,但是可以用于多线程同步 Set:(无序,不可以重复)set最多有一个null元素,因为不可以重复 ----HashSet    没有排序,不重复(顺序随机) ----LinkedHashSet    按插入排序,不重复(按插入顺序) ----TreeSet    实现Comparable接

Java集合Set、List、Map的遍历方法

本文实例讲述了Java集合Set.List.Map的遍历方法,分享给大家供大家参考. 具体方法如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 7

java 集合与数组的互转方法,与源码分析

前言 java数组与集合需要互相转换的场景非常多,但是运用不好还是容易抛出UnSupportedOperationException.下面讲解一下互转的方法,以及结合源码分异常产生的原因 集合转数组 List<String> strList = new ArrayList<>(10); strList.add("aa"); strList.add("bb"); strList.add("cc"); String[] str

java集合和数组互转

方法一:使用Arrays.asList()方法String[] strs = {"one","two","three"};List<String> strList = Array.asList(strs);注意:1)这个方法返回的是基于数组的List视图,并未正在的创建List对象,所以不能对List进行增加和删除操作,进行修改List是,同样会修改到数组.2)数组转换成只读的List,使用Collections.unmodifiab

JAVA集合详解(Collection和Map接口)

在Java的util包中有两个所有集合的父接口Collection和Map,它们的父子关系:            java.util        +Collection 这个接口extends自 --java.lang.Iterable接口           +List 接口               -ArrayList 类              -LinkedList 类              -Vector 类     此类是实现同步的 +Queue 接口         

java集合 list与Set、Map区别

1.List,Set都是继承自Collection接口,Map则不是. 2.List特点:元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素不可重复,重复元素会覆盖掉 ,(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的,加入Set 的Object必须定义equals()方法,另外list支持for循环,也就是通过下标来遍历,也可以用迭代器,但是set只能用迭代,因为他无序,无法用下标来取得想要的值.) 3.Set和List对比

Java集合框架(五)—— Map、HashMap、Hashtable、Properties、SortedMap、TreeMap、WeakHashMap、IdentityHashMap、EnumMap

Map Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另一组值用于保存Map里的value,key和value都可以是任何引用类型的数据.Map的key不容许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回false. key和value之间存在单向一对一关系,即通过指定的key,总能找到唯一的.确定的value.从Map中取出数据时,只要给出指定的key,就可以取出对应的value. 如果把Map里的所有key放在一起看

Java集合与数组实现升序排序的算法设计

//已有一个升序排列的整数数组(含20个整数),要求从键盘输入一个整数后,将该数插入数组,并保持升序,输出该数组的数值验证程序的正确性. package test_Array; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Scanner; public class ArrayTest { public static void main(Stri