显示两个数据的不同部分,结果显示成了两个数据加在一起,这是为什么:是代码出错了吗怎么改呢
public ArrayList<Queshu> listLost() {
ArrayList<Queshu> all = listAll();
ArrayList<Queshu> part = listPart();
ArrayList<Queshu> lost = new ArrayList<>();
for(Queshu s:all){
if(!part.contains(s))
lost.add(s);
}
for(Queshu s:part){
if(!all.contains(s) )
lost.add(s);
}
return lost;
}
所有代码
public class ProblemBDAO {
/**
* 显示全部记录
*
* @return
*/
public ArrayList<Queshu> listAll() {
List <String> datas=FileUtils.readLines("d:/ks/20214075221/data/b/all.txt");
ArrayList<Queshu> all = new ArrayList<Queshu>();
for(String data :datas){
String temp[]=data.replaceAll("\"","").split(",");
Queshu queshu = new Queshu(Integer.parseInt(temp[0]),temp[1],temp[2],temp[3],temp[4],temp[5],temp[6],temp[7],temp[8]);
all.add(queshu);
}
return all;
}
public ArrayList<Queshu> listPart() {
List <String> datas=FileUtils.readLines("d:/ks/20214075221/data/b/part.txt");
ArrayList<Queshu> all = new ArrayList<Queshu>();
for(String data :datas){
String temp[]=data.replaceAll("\"","").split(",");
Queshu queshu = new Queshu(Integer.parseInt(temp[0]),temp[1],temp[2],temp[3],temp[4],temp[5],temp[6],temp[7],temp[8]);
all.add(queshu);
}
return all;
}
//返回不同的数据
public ArrayList<Queshu> listLost() {
ArrayList<Queshu> all = listAll();
ArrayList<Queshu> part = listPart();
ArrayList<Queshu> lost = new ArrayList<>();
for(Queshu s:all){
if(!part.contains(s))
lost.add(s);
}
for(Queshu s:part){
if(!all.contains(s) )
lost.add(s);
}
return lost;
}
//返回重复数据
public ArrayList<Queshu> listRepeat() {
ArrayList<Queshu> allList = listAll();
ArrayList<Queshu> partList = listPart();
ArrayList<Queshu> repeatList = new ArrayList<>();
//补充代码
for (Queshu s: partList){
if (allList.contains(s))
repeatList.add(s);
}
return repeatList;
}
public static void main(String[] args) {
}
}
ArrayList<Queshu> all = listAll();
ArrayList<Queshu> part = listPart();
你这里 的 Queshu 实例 都是不一样的
不能直接判断包含,应该比较每个对象的 id是不是相等,来判断 是不是 重复的
//返回不同的数据 方法里面
删除一个循环