对集合中的数据进行组合排列 /** * 对集合中的数据进行组合排列 * * @param data * @return */ private Collection group(List data) { Collection temps = convertToCollection(data.get(0)); Set groups = new LinkedHashSet();
/** * 对集合中的数据进行组合排列 * * @param data * @return */ private Collection group(List data) { Collection temps = convertToCollection(data.get(0)); Set groups = new LinkedHashSet(); int size = data.size(); for (int i = 1; i < size; i++) { Collection items = convertToCollection(data.get(i)); for (Object item : items) { for (Object temp : temps) { groups.add(String.valueOf(temp) + String.valueOf(item)); } } if (i < (size - 1)) { temps.clear(); temps.addAll(groups); groups.clear(); } } return groups; }将一个对象转换为集合
private Collection convertToCollection(Object data) { if (Collection.class.isAssignableFrom(data.getClass())) { return (Collection) data; } Collection coll = new ArrayList(); if (data.getClass().isArray()) { int length = Array.getLength(data); for (int i = 0; i < length; i++) { coll.add(Array.get(data, i)); } return coll; } coll.add(data); return coll; }汉子转拼音测试
@Test public void test3() throws Exception { String text = "你好中国人民"; List list = new ArrayList(); char[] chars = text.toCharArray(); for (char aChar : chars) { list.add(PinyinHelper.convertToPinyinArray(aChar)); } Collection group = group(list); System.out.println(group); }