private Collection<String> list = new HashSet<String>();
public Test() { init(); arrange(); print(); }
public void init() { save(data); swap(data, 0, 1); }
public void arrange() { int i; int j; for (i = 2; i < data.length; i++) { List<String[]> li = trans(); for (String[] buff : li) { for (j = 0; j < i; j++) { String[] tmp = buff.clone(); swap(tmp, j, i); } } } }
public List<String[]> trans() { List<String[]> l = new ArrayList<String[]>(); for (String str : list) { l.add(str.split(",")); } return l; }
public void swap(String[] tmp, int i, int j) { String t = tmp[i]; tmp[i] = tmp[j]; tmp[j] = t; save(tmp); }
public void save(String[] tmp) { StringBuffer sb = new StringBuffer(); for (String i : tmp) { sb.append(i + ","); } sb.deleteCharAt(sb.length() - 1); list.add(sb.toString()); }
public String[] sort(String[] tmp) { return null; }
public int search(String[] tmp, String val) { int length = tmp.length; for (int i = 0; i < length; i++) { if (tmp[i].equals(val)) { return i; } } return -1; }
public void print() { int total = 0; for (String str : list) { Pattern invalide1=Pattern.compile("^..4.*"); Pattern invalide2=Pattern.compile(".*(3,5|5,3).*"); boolean false1=invalide1.matcher(str).matches(); boolean false2=invalide2.matcher(str).matches(); if (!(false1 || false2)){ System.out.println(str); total++; } } System.out.println("Total Size: " + total); }
public static void main(String[] args) { // TODO Auto-generated method stub new Test(); }