2

我想制作简单的参数值对(SomeClass,SomeNumber),其中第一件事是参数,第二件事是它的值。SomeNumber 可以是整数、分数、负数等。 SomeClass 可以是字符串、颜色或任何可以与 "SomeNumber" 配对的东西。

员工和工资前。(John, 19.75), (David, 25.50), (Cathy, 102.50) 例如颜色代码 (Color.black, 0), (Color.blue, 2) 等。

这是个好主意吗?如果不是为什么?如果是,那么我该如何在 Java 中做到这一点?

4

5 回答 5

4

你说的是地图

将键映射到值的对象。地图不能包含重复的键;每个键最多可以映射到一个值。

试试HashMap

Map<String,Double> myMap = new HashMap<String,Double>();
      |       |     
      |       |
SomeClass  SomeNumber

myMap.put("John", 19.75); 

SomeNumber num =  myMap.get("John");
于 2013-03-05T01:51:04.673 回答
3

我建议使用 aMap来实现这种行为。例如,对于您列出的员工:

Map<String, Double> employees = new HashMap<String,Double>(); 
employees.put("John", 19.75); 
employees.put("David", 25.50); 
employees.put("Cathy", 102.50);

然后,您可以使用该键访问元素。

double salary = employees.get("John");
于 2013-03-05T01:51:27.090 回答
2

您可以使用 aMap<String, Double>或创建一个来保存数据。您可以根据您正在寻找的功能范围来决定实施哪种替代方案。如果您只是在寻找一种存储机制,我会选择Map,但如果您想要更多的东西(其他方法等),我会选择类。

现在,您似乎正在将这些不同的“名称”和“颜色代码”想法合并为一个实体。我会避免这样做。如果您使用地图方法,我将维护两张不同的地图,一张用于(姓名,工资)对,另一张用于颜色代码数据。如果您决定使用类,我将创建两个不同的类(可能都继承自同一个基类)来保存每组数据。不要将不相关的东西组合成一个实体!


相关文件:

于 2013-03-05T01:52:34.920 回答
1

您可以使用HashMap 或 HashTable。有一点不同,但是您可以使用概念和 Java 实用程序来创建类似字典的数据结构(键值对)。

于 2013-03-05T01:55:22.243 回答
0

这是否是一个好主意取决于您将如何处理它。在 Java 中执行此操作的最简单方法之一是创建一个具有两个字段的简单对象(如果您将变量设为私有,可能还有 getter 和 setter 方法),一个用于字符串,一个用于十进制值。

public class MyClass {
    public String value1;
    public double value2;

    public MyClass(String v1, double v2) {
        value1 = v1;
        value2 = v2;
    }
}
于 2013-03-05T01:52:06.953 回答