2011-10-17 13 views
7

Eventuali duplicati:
Java: How to convert List to MapConversione ArrayList a HashMap

ho arrayList

ArrayList<Product> productList = new ArrayList<Product>(); 
productList = getProducts(); //Fetch the result from db 

voglio convertire a ArrayList per hashmap Ti piace questa

HashMap<String, Product> s= new HashMap<String,Product>(); 

Per favore aiutami a convertire in HashMap.

+0

Fa 'Product' hanno una proprietà unica (i)? – SimonC

+0

Yes.ProductCode è univoco – Piraba

+0

Si supponga che ** field1 ** sia un campo all'interno della classe _ ** Product ** _, quindi è possibile eseguire questa operazione 'Map urMap = yourList.stream(). Collect (Collectors .toMap (Product :: getField1, Function.identity())); ' –

risposta

16

La metodologia generale sarebbe quello di scorrere l'ArrayList, e inserire i valori nella HashMap. Un esempio è il seguente:

HashMap<String, Product> productMap = new HashMap<String, Product>(); 
for (Product product : productList) { 
    productMap.put(product.getProductCode(), product); 
} 
+0

L'iterazione è un po 'lenta. Ci deve essere un modo più veloce. –

+1

È possibile utilizzare l'API stream di Java 8. Vedere http://codecramp.com/java-8-streams-api-convert-list-map/ – EMM

1

utilizzando una proprietà nome supposto come chiave mappa:

for (Product p: productList) { s.put(p.getName(), p); } 
1

[a cura]

utilizzando i suoi commenti su ProductCode (e supponendo che il codice prodotto è una stringa) come riferimento ...

for(Product p : productList){ 
     s.put(p.getProductCode() , p); 
    } 
Problemi correlati