2012-06-10 26 views
3

我试图让用户输入String来搜索列表中的值。这工作正常,但我也希望String有一个数值。这样我可以得到列表价格中的某个项目。我尝试过:如何在Java中创建关联列表?

public List<String, double> 

但是,这总是给我一个错误。我如何存储字符串及其相应的数值?

回答

5

你只存储StringDouble,或将你最终需要存储关于每个对象的更多信息?

例如,您正在讨论存储名称和价格。如果这适用于类似购物的计划,则最好将每个产品的所有信息存储在新类中,然后将该类存储在HashMap中。例如..

// Class for your product and all related information... 
public class Product { 
    String name; 
    double price; 
    String color; 
    double weight; 

    public Product(String name, double price, String color, double weight){ 
     this.name = name; 
     this.price = price; 
     this.color = color; 
     this.weight = weight; 
    } 
} 

// Now add each Product to a HashMap (in your main class)... 
HashMap<String,Product> products = new HashMap<String,Product>(); 
products.put("Cheese", new Product("Cheese",1.10,"Yellow",0.5); 
products.put("Milk", new Product("Milk",2.0,"White",1.5); 

然后,您将能够查询HashMap"Cheese",你会得到Product和并为它的所有信息......

Product cheese = products.get("Cheese"); 
double price = cheese.getPrice(); 
+1

哦,这更好。谢谢! –

9

使用地图。

Map<String, Double> someMap = new HashMap<String, Double>(); 

然后,您可以使用Map#put(K, V)Map#get(K)投入和得到的值。

退房Map documentation以及。

从Java 7起,您可以省略构造函数的声明中的泛型类型:

Map<String, Double> someMap = new HashMap<>(); 
+0

谢谢!听起来像这样会很好地工作。 –

+0

Map#get(k)只会带一个参数。即关键。 –