Java 集合轉換(數組、List、Set、Map相互轉換)


list,set,map,數組間的相互轉換
1.list轉set
Set set = new HashSet(new ArrayList());

2.set轉list
List list = new ArrayList(new HashSet());

3.數組轉為list
List stooges = Arrays.asList("Larry", "Moe", "Curly");
或者
String[] arr = {"1", "2"};
List list = Arrays.asList(arr);

4.數組轉為set
int[] a = { 1, 2, 3 };
Set set = new HashSet(Arrays.asList(a));

5.map的相關操作。
Map map = new HashMap();
map.put("1", "a");
map.put('2', 'b');
map.put('3', 'c');
System.out.println(map);
// 輸出所有的值
System.out.println(map.keySet());
// 輸出所有的鍵
System.out.println(map.values());
// 將map的值轉化為List
List list = new ArrayList(map.values());
System.out.println(list);
// 將map的值轉化為Set
Set set = new HashSet(map.values());
System.out.println(set);

6.list轉數組
List list = Arrays.asList("a","b");
String[] arr = (String[])list.toArray(new String[list.size()]);
System.out.println(Arrays.toString(arr));

public static void main(String[] args) {


  Map<String, String> map = new HashMap<String, String>();
  map.put("1", "value1");
  map.put("2", "value2");
  map.put("3", "value3");
  
  //第一種:普遍使用,二次取值
  System.out.println("通過Map.keySet遍歷key和value:");
  for (String key : map.keySet()) {
   System.out.println("key= "+ key + " and value= " + map.get(key));
  }
  
  //第二種
  System.out.println("通過Map.entrySet使用iterator遍歷key和value:");
  Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
  while (it.hasNext()) {
   Map.Entry<String, String> entry = it.next();
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  }
  
  //第三種:推薦,尤其是容量大時
  System.out.println("通過Map.entrySet遍歷key和value");
  for (Map.Entry<String, String> entry : map.entrySet()) {
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  }

  //第四種
  System.out.println("通過Map.values()遍歷所有的value,但不能遍歷key");
  for (String v : map.values()) {
   System.out.println("value= " + v);
  }
 }

還可以進行如下的操作

package com.example.test;  

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 ConvertorTest {  

    /** 
     * @param args 
     */  
    public static void main(String[] args) {  

        testList2Array();  
        testArray2List();  
        testSet2List();  
        testList2Set();  
        testSet2Array();  
        testArray2Set();  
        testMap2Set();  
        testMap2List();  
    }  

    private static void testMap2List() {  

        Map<String, String> map = new HashMap<String, String>();    
        map.put("A", "ABC");    
        map.put("K", "KK");    
        map.put("L", "LV");    

        // 將Map Key 轉化為List      
        List<String> mapKeyList = new ArrayList<String>(map.keySet());    
        System.out.println("mapKeyList:"+mapKeyList);  

        // 將Map Key 轉化為List      
        List<String> mapValuesList = new ArrayList<String>(map.values());    
        System.out.println("mapValuesList:"+mapValuesList);  

    }  

    private static void testMap2Set() {  

        Map<String, String> map = new HashMap<String, String>();    
        map.put("A", "ABC");    
        map.put("K", "KK");    
        map.put("L", "LV");    

        // 將Map 的鍵轉化為Set      
        Set<String> mapKeySet = map.keySet();    
        System.out.println("mapKeySet:"+mapKeySet);  

        // 將Map 的值轉化為Set      
        Set<String> mapValuesSet = new HashSet<String>(map.values());    
        System.out.println("mapValuesSet:"+mapValuesSet);  
    }  

    private static void testArray2Set() {  

        String[] arr = {"AA","BB","DD","CC","BB"};    

        //數組-->Set    
        Set<String> set = new HashSet<String>(Arrays.asList(arr));    
        System.out.println(set);    
    }  

    private static void testSet2Array() {  
        Set<String> set = new HashSet<String>();  
        set.add("AA");  
        set.add("BB");  
        set.add("CC");  

        String[] arr = new String[set.size()];    
        //Set-->數組    
        set.toArray(arr);   
        System.out.println(Arrays.toString(arr));    
    }  

    private static void testList2Set() {  

        List<String> list = new ArrayList<String>();  
        list.add("ABC");  
        list.add("EFG");  
        list.add("LMN");  
        list.add("LMN");  

        //List-->Set  
        Set<String> listSet = new HashSet<String>(list);  
        System.out.println(listSet);  
    }  

    private static void testSet2List() {  

        Set<String> set = new HashSet<String>();  
        set.add("AA");  
        set.add("BB");  
        set.add("CC");  

        //Set --> List  
        List<String> setList = new ArrayList<String>(set);  
        System.out.println(setList);    
    }  

    private static void testList2Array() {  
        //List-->數組    
        List<String> list = new ArrayList<String>();    
        list.add("AA");    
        list.add("BB");    
        list.add("CC");    
        Object[] objects = list.toArray();//返回Object數組    
        System.out.println("objects:"+Arrays.toString(objects));    

        String[] arr = new String[list.size()];    
        list.toArray(arr);//將轉化后的數組放入已經創建好的對象中    
        System.out.println("strings1:"+Arrays.toString(arr));    
    }  

    private static void testArray2List() {  
        //數組-->List    
        String[] ss = {"JJ","KK"};    
        List<String> list1 = Arrays.asList(ss);    
        List<String> list2 = Arrays.asList("AAA","BBB");    
        System.out.println(list1);    
        System.out.println(list2);    
    }  

} 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM