List listzhuanhuan=maps.get(entryt.getKey());
List listleixing=new ArrayList();
for(int m=0; m<listzhuanhuan.size();m++){
listleixing.add(listzhuanhuan.get(m).getLeibie());
}
boolean a=false;
for (String tempa : listleixing) {
if (tempa.equals("0")) {
a=true;
break;
}
a=false;
}
if (!a) {
Mapshuju mapshuju= new Mapshuju();
mapshuju.setLeibie("0");
mapshuju.setOut_dpt(listzhuanhuan.get(0).out_dpt);
mapshuju.setRenshu("0");
listzhuanhuan.add(mapshuju) ;
}
for (String tempa : listleixing) {
if (tempa.equals("1")) {
a=true;
break;
}
a=false;
}
if (!a) {
Mapshuju mapshuju= new Mapshuju();
mapshuju.setLeibie("1");
mapshuju.setOut_dpt(listzhuanhuan.get(0).out_dpt);
mapshuju.setRenshu("0");
listzhuanhuan.add(mapshuju) ;
}
for (String tempa : listleixing) {
if (tempa.equals("2")) {
a=true;
break;
}
a=false;
}
if (!a) {
Mapshuju mapshuju= new Mapshuju();
mapshuju.setLeibie("2");
mapshuju.setOut_dpt(listzhuanhuan.get(0).out_dpt);
mapshuju.setRenshu("0");
listzhuanhuan.add(mapshuju) ;
}
for (String tempa : listleixing) {
if (tempa.equals("3")) {
a=true;
break;
}
a=false;
}
if (!a) {
Mapshuju mapshuju= new Mapshuju();
mapshuju.setLeibie("3");
mapshuju.setOut_dpt(listzhuanhuan.get(0).out_dpt);
mapshuju.setRenshu("0");
listzhuanhuan.add(mapshuju) ;
}
ComparatorUser comparator=new ComparatorUser();
Collections.sort(listzhuanhuan, comparator);
just a test
if (tempa.equals("2")) {
a=true;
break;
}
a=false;
这里的 equals 2 或者3 为什么不写在一起。
判断字符串集合中是否有某个字符串为什么不用contains方法呢。
if(!listleixing.contains("0")){
}
还有就是new一个Mapshuju对象的时候只有leibie属性不一样,这段代码提到一个方法里不行么,接收leibie参数,返回一个Mapshuju对象
或者提取到一个方法里,这些都是可以自己决定的。但是重复代码肯定是不好的。
List listzhuanhuan = maps.get(entryt.getKey());
funName(listzhuanhuan,new String[]{"0","1","2","3"});
}
public static Mapshuju funName(List listzhuanhuan,String [] leibies){
List listleixing = new ArrayList();
for(int m=0; m<listzhuanhuan.size();m++){
listleixing.add(listzhuanhuan.get(m).getLeibie());
}
for(int i = 0 ; i < leibies.length ; i++){
if(!listleixing.contains(leibies[i])){
Mapshuju mapshuju= new Mapshuju();
mapshuju.setLeibie(leibies[i]);
mapshuju.setOut_dpt(listzhuanhuan.get(0).out_dpt);
mapshuju.setRenshu("0");
listzhuanhuan.add(mapshuju) ;
}
}
}
存在的问题:
1 变量命名不妥,通常变量都是有意义的英文单词,你这英文加拼音的命名方式很奇怪啊。boolean a=false;这个变量a看不出变量的作用和含义,可读性差。
2 代码不严谨, listzhuanhuan.get(m).getLeibie());这里get(m)如果返回为null,那么久可能抛出空指针异常了。
3 一个方法中代码量太多,有些代码可以抽取成私有方法,如判断是否存在类型为1的记录的代码,可以抽取出来的。
就是单独写在一个类里,写一个方法,用到判断就来调用,应该是这样意思。。。