Java中如何将HashMap转换为ArrayList

时间:2020-02-23 14:34:16  来源:igfitidea点击:

在本教程中,我们将看到如何将HashMap转换为Java中的ArrayList。

很多次,我们需要将键或者值存储到ArrayList或者Store HashMap在ArrayList中的节点对象。

HashMap和ArrayList都是Java中最使用的数据结构,都具有不同的层次结构。

以下是将HashMap转换为Java中的ArrayList的方法。

使用Java 8的Stream API

Java 8:将HashMap的键转换为ArrayList

我们可以使用HashMap的keyset()方法获取一组密钥并使用Java 8的Stream API将其转换为ArrayList。

List<Integer> customerIdList = customerIdNameMap.keySet()
				                                    .stream()
			                                       .collect(Collectors.toList());

将HashMap的值转换为ArrayList

我们可以使用hashmap的 values()获取值集合的方法并使用Java 8的Stream API将其转换为ArrayList。

List customerNames = customerIdNameMap.values()
				                          .stream()
				                          .collect(Collectors.toList());

将HashMap的条目对象转换为ArrayList

我们可以使用hashmap的

entrySet()获取输入对象集的方法,并使用Java 8的Stream API将其转换为ArrayList。

List<Entry<Integer, String>> entryCustomerList = customerIdNameMap.entrySet()
				                                                      .stream()
				                                                      .collect(Collectors.toList());

让我们看看完整的例子。

package org.igi.theitroad;
 
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.stream.Collectors;
 
public class HashMapToArrayListMainJava8 {
 
	public static void main(String[] args) {
		
		HashMap<Integer, String> customerIdNameMap = new HashMap<Integer, String>();
		//Putting key-values pairs in HashMap
		customerIdNameMap.put(1001, "Arman");
		customerIdNameMap.put(1002, "Javin");
		customerIdNameMap.put(1003, "Mat");
		customerIdNameMap.put(1004, "Joe");
		
		
		//Java 8
                //Convert keys to ArrayList
		List<Integer> customerIdList = customerIdNameMap.keySet()
				                                        .stream()
				                                        .collect(Collectors.toList());
		System.out.println("customerIds: "+customerIdList);
		
                //Convert values to ArrayList
		List<String> customerNames = customerIdNameMap.values()
				                                      .stream()
				                                      .collect(Collectors.toList());
		System.out.println("Customer Names: "+ customerNames);
		
                //Convert entry objects to ArrayList
		List<Entry<Integer, String>> entryCustomerList = customerIdNameMap.entrySet()
				                                                           .stream()
				                                                           .collect(Collectors.toList());
		System.out.println("Customer ID and Names: "+entryCustomerList);
	}
}

使用Artrlist的构造函数

将HashMap的键转换为ArrayList

获取来自HashMap的Keyset(),然后使用其构造函数将其转换为ArrayList。

//Convert keys to ArrayList
Set keySet = customerIdNameMap.keySet();
List customerIdList = new ArrayList(keySet);

将HashMap的值转换为ArrayList

获取来自HashMap的值(),然后使用其构造函数将其转换为ArrayList。

//Convert values to ArrayList
Collection values = customerIdNameMap.values();
		List customerNames = new ArrayList(values);

将HashMap的条目对象转换为ArrayList

获取来自HashMap的RestSet(),然后使用其构造函数将其转换为ArrayList。

//Convert entry objects to ArrayList
Set<Entry<Integer, String>> entrySet = customerIdNameMap.entrySet();
		List<Map.Entry<Integer,String>> entryCustomerList = new ArrayList<Map.Entry<Integer,String>>(entrySet);

以下是将HashMap转换为ArrayList的完整程序。

package org.igi.theitroad;
 
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
 
public class HashMapToArrayListMain {
 
	public static void main(String[] args) {
		
		HashMap<Integer, String> customerIdNameMap = new HashMap<Integer, String>();
		//Putting key-values pairs in HashMap
		customerIdNameMap.put(1001, "Arman");
		customerIdNameMap.put(1002, "Javin");
		customerIdNameMap.put(1003, "Mat");
		customerIdNameMap.put(1004, "Joe");
		
		//Before Java 8 
		//Convert keys to ArrayList
		Set<Integer> keySet = customerIdNameMap.keySet();
		List<Integer> customerIdList = new ArrayList<Integer>(keySet);
		System.out.println("customerIds: "+customerIdList);
		
		//Convert values to ArrayList
		Collection<String> values = customerIdNameMap.values();
		List<String> customerNames = new ArrayList<String>(values);
		System.out.println("Customer Names: "+ customerNames);
		
		//Convert entry objects to ArrayList
		Set<Entry<Integer, String>> entrySet = customerIdNameMap.entrySet();
		List<Map.Entry<Integer,String>> entryCustomerList = new ArrayList<Map.Entry<Integer,String>>(entrySet);
		System.out.println("Customer ID and Names: "+entryCustomerList);
		
	}
}