} public String getString(){ StringBuffer str = new StringBuffer(); str.append(this.name).append(" ").append(this.type).append(" ").append(this.size).append(" "); String s = new String(str); return s; } }public class Test { public static void main(String[] args) { Data d[] = new Data[7]; d[0] = new Data("1","aaa","smalll","100"); d[1] = new Data("2","bbb","big","200"); d[2] = new Data("3","bbb","big","200"); d[3] = new Data("4","aaa","smalll","100"); d[4] = new Data("5","bbb","big","200"); d[5] = new Data("6","bbb","big","200"); d[6] = new Data("7","bbb","big","200"); Map<String, Integer> dd = new HashMap<String, Integer>(); for(int i = 0;i<d.length;i++){ if(dd.containsKey(d[i].getString())){ dd.put(d[i].getString(), dd.get(d[i].getString())+1); } else{ dd.put(d[i].getString(), 1); } } System.out.println(dd); }
hashmap中好像有containt方法直接判断是否有重复的
如果要三者完全相同,
把name+type+size作为字符串做map的key,然后后面作为个数,就行了。
遍历,判断。
比如[code=BatchFile]
1 aaa small 100
2 bbb big 200
3 bbb big 200
4 aaa small 100
5 bbb big 200
6 bbb big 200
[/code]你想要得到的结果是多少呢?
结果:
aaa small 100 --->2
bbb big 200 --->4不用数据库,不用sql.麻烦大家给个详细java代码,多谢了
String str = name + "\t" + type + "\t" + size;
if (map.containsKey(str)){
Integer aInt = map.get(str) + 1;
map.put(str, aInt);
} else {
map.put(str, 1);
}
}
遍历这个ArrayList,遇到相同计数加一并删除.
import java.util.Map;class Data{
private String no;
private String name;
private String type;
private String size;
public Data(String no,String name,String type,String size){
this.name = name;
this.no = no;
this.type = type;
this.size = size;
}
public Data(){
}
public String getString(){
StringBuffer str = new StringBuffer();
str.append(this.name).append(" ").append(this.type).append(" ").append(this.size).append(" ");
String s = new String(str);
return s;
}
}public class Test {
public static void main(String[] args) {
Data d[] = new Data[7];
d[0] = new Data("1","aaa","smalll","100");
d[1] = new Data("2","bbb","big","200");
d[2] = new Data("3","bbb","big","200");
d[3] = new Data("4","aaa","smalll","100");
d[4] = new Data("5","bbb","big","200");
d[5] = new Data("6","bbb","big","200");
d[6] = new Data("7","bbb","big","200");
Map<String, Integer> dd = new HashMap<String, Integer>();
for(int i = 0;i<d.length;i++){
if(dd.containsKey(d[i].getString())){
dd.put(d[i].getString(), dd.get(d[i].getString())+1);
}
else{
dd.put(d[i].getString(), 1);
}
}
System.out.println(dd);
}
}