我有两组 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/