当前位置: 代码迷 >> Java Web开发 >> JAVA集合内容数据重组,该如何处理
  详细解决方案

JAVA集合内容数据重组,该如何处理

热度:77   发布时间:2016-04-14 19:06:20.0
JAVA集合内容数据重组
  各位大神们,小弟目前有一个java集合重复数据去重然后重组算法,还是大神帮忙,期望结果如下:
数据格式:
String a = "a1,a2,a3";
String d = "b1,b2,b3";
String b = "a2,a1,a4";
List<String> list = new ArrayList<String>();
list.add(a);
list.add(b);
list.add(d);
期望结果:
String a = "a1,a2,a3,a4";
String d = "b1,b2,b3";


------解决思路----------------------

public class CustomArrayList extends ArrayList<String> {

/**
 * 
 */
private static final long serialVersionUID = -2753294701219092786L;

@Override
public boolean add(String e) {
boolean flag = false;
String val = null;
int index = 0 ;
for(int i=0 ;i < this.size();i++){
String  context = this.get(i);
String [] currentArr = e.split(",");

for (int j = 0; j < currentArr.length; j++) {
val = "";
if(context.contains(currentArr[j]))
flag = true;
else
val = ","+currentArr[j];
}
if(flag){
val = context + val;
index = i;
break;
}
}
if(flag){
super.remove(index);
super.add(index , val);
return true;
}else{
return super.add(e);
}

}

public static void main(String[] args) {
String a = "a1,a2,a3";
String d = "b1,b2,b3";
String b = "a2,a1,a4";
CustomArrayList list = new CustomArrayList();
list.add(a);
list.add(b);
list.add(d);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}


}


傻瓜方式,性能也不好,这样的设计不是很合理!
  相关解决方案