java - 如何在java中的 vector 中插入 vector 元素

标签 java vector data-structures collections

我有两组 vector ,我需要在每个第一组元素中插入第二组并打印。

我的输入是这样的:{RED,BLUE,GREEN},{CSK,MI,RCB}

我的输出是这样的:{RED,CSK},{RED,MI},{RED,RCB},{BLUE,CSK},{BLUE,MI},{BLUE,RCB},{Green, CSK},{Green,MI},{Green,CSK}

我试过这样的代码。能不能给点建议啊

public static void main(String[]args){
Vector v = new Vector();
v.addElement("RED");
v.addElement("BLUE");
v.addElement("GREEN"");
Vector v2 = new Vector();
Vector v3 = new Vector();
v2.addElement("CSK");
v2.addElement("RCB");
v2.addElement("MI");
for(int i=0; i<v.size(); i++){
    for(int j=0; j<v2.length; j++){
     v3 = v(i).add(v2(j));
    }
}
for(int i=0; i<v3.size(); i++){
    System.out.println(v3);
}
}

最佳答案

这称为笛卡尔积,其工作原理如下:

List<String> rgbs = Arrays.asList("RED", "GREEN", "BLUE");
List<String> modes = Arrays.asList("CSK", "MI", "RCB");
List<List<String>> cartesianProduct = new ArrayList<>();
for (String rgb : rgbs) {
    for (String mode : modes) {
        List<String> product = new ArrayList<>();
        product.add(rgb);
        product.add(mode);
        cartesianProduct.add(product);
    }
}

我确实使用了一些您可能还不知道的新语法和类,但与您的代码非常相似。

重要的一点是结果的每个元素本身都是两个字符串的组合。这里我使用了一个列表。

关于java - 如何在java中的 vector 中插入 vector 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38306122/

相关文章:

java - Java 工具创建的 WSDL 文件的 WCF 序列化问题

java - 在 HashMap 中,如果存在重复值,如何将前一个键分配给下一个键

r - 如何从向量或列表中消除 n 个连续值?

c++ - C++ 中 vector push_back 操作的类型转换

c++ - 三元 vector 的快速内积

algorithm - 当节点有两个 child 时在 BST 中删除

java - Spring Di通过setter动态构造函数参数

java - org.thymeleaf.templatemode.StandardTemplateModeHandlers无法解析

data-structures - 解释数据*结构*和数据*类型*之间的区别

language-agnostic - 高效集交集——判断交集是否大于k