JAvaデカルトセット


今日のテストの過程で大量のテストデータを作るには、いくつかの集合の中のデータをデカルト積にして、手動で入力しないようにしたいと思っています.1時間かけて、途中で少し曲がった.あまり話さないで、コードをつけてください.

package demo.topTest.common;

import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;

/**
* Created by liwenjing on 15/7/24.
*/
public class OriginData {

public String[] address_option={" "," "};
public String[] cabin={"Y","X"};
public String[] city={" "," "};
public String[] airport={"NAY","SHA"};
public String[] arrcity={" "," "};

private List mixData(List oldlist){
List result=new LinkedList();
if(oldlist!=null) {
copyArrayToList(result, oldlist.get(0));
for(int i=1;i ListIterator iterator= (ListIterator) result.iterator();
while(iterator.hasNext()){
String oldString= (String) iterator.next();
iterator.remove();
for(int j=0;j iterator.add(oldString+oldlist.get(i)[j]);
}
}
}
}
return result;
}

private void copyArrayToList(List list,String[] array){
for(int i=0;i list.add(array[i]);
}
}

public void printList(List list){
for(int i=0;i System.out.println(list.get(i));
}
}

public static void main(String[] args){
OriginData od=new OriginData();
List oldlist=new LinkedList();
oldlist.add(od.address_option);
oldlist.add(od.cabin);
oldlist.add(od.city);
oldlist.add(od.airport);
oldlist.add(od.arrcity);

od.printList(od.mixData(oldlist));

}
}


結果は図のようになります.
[img]http://dl2.iteye.com/upload/attachment/0110/4439/adc4a57f-38e7-3d95-a945-0d6bcdb26d26.png[/img]
今でもざらざらしています.次に、プロファイルからデータを読み出し、つなぎ合わせてcsvまたはxlsに入れ、テストデータとして使用します.