使用矢量类型的一对多关系

时间:2015-02-16 17:22:32

标签: java vector relationship one-to-many

我是Java编程的新手。我刚刚遇到了使用矢量类型建立一对多关系的新概念。 你能给我一个简单的例子,说明使用矢量类型建立一对多的关系(包括类,实现和使用该类的例子)吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用Map来表示一个键与多个对象之间的关系。

import java.util.*;

public class Test {

    private static String[] val1 = {
            "q", "w", "e", "r", "t", "y"
    };

    private static String[] val2 = {
            "u", "i", "o", "p", "[", "]"
    };

    public static void main(String[] args) {
        Map<String, List<String>> map = new HashMap<String, List<String>>();
        map.put("foo", Arrays.asList(val1));
        map.put("bar", Arrays.asList(val2));

        System.out.println(map.get("foo"));
        System.out.println(map.get("bar"));
    }
}

这将导致控制台看起来像这样:

console

编辑 - 如果您被迫使用向量:

因为Vector只是列表,与Vectors建立一对多关系的唯一方法是创建一个2个并行向量:

import java.util.*;

public class Test {

    private static String[] val1 = {
            "q", "w", "e", "r", "t", "y"
    };

    private static String[] val2 = {
            "u", "i", "o", "p", "[", "]"
    };

    public static void main(String[] args) {
        Vector<String> keyVector = new Vector<String>();
        Vector<Vector<String>> valueVector = new Vector<Vector<String>>();

        keyVector.add("foo");
        keyVector.add("bar");

        valueVector.add(new Vector<String>(Arrays.asList(val1)));
        valueVector.add(new Vector<String>(Arrays.asList(val2)));

        //now let's say you want to find the objects that correspond with the key "bar"
         String key = "bar";

        for (int i = 0; i < keyVector.size(); i++) {
            if (keyVector.get(i).equals(key)) {
                System.out.println(valueVector.get(i));
            }
        }
     }
 }

输出:

output2