我有2个ArrayList
列表fileArray = new ArrayList(); 列表文件Txt = new ArrayList();
List<String> newDoc = new ArrayList<String>();
while((fileName = fileRead.readLine()) !=null){
fileArray.add(fileName);
}
fileRead.close();
while((txtName = txtRead.readLine()) !=null){
fileTxt.add(txtName);
}
txtRead.close();
我想将fileArray
数据与fileTxt
数据进行比较,但不知道该怎么做,因为要进行比较,我需要首先获取数据。为此,我需要循环数组并使用.get
之类的
for(int a=0;a<fileTxt.size();a++){
System.out.println(fileTxt.get(a));
}
我知道这是错误的,但是任何人都可以帮助我。
注意:我想使用诸如contains方法之类的方法,但是不能,因为数据是500万行。 (不等于方法)
已更新:我想在fileTxt中找到一个出现在fileArray中的单词。 (所以基本上它的类似包含)
答案 0 :(得分:0)
要比较两个数组列表中的两个值,请执行以下操作:
if(fileArray.get(index).equals(fileTxt.get(index)))
答案 1 :(得分:0)
有一个windefull功能。
System.out.println(array1.equals(array2));
然后,您可能需要手动检查答案:
ArrayList like1 = new ArrayList();
ArrayList like2 = new ArrayList();
...
boolean flag = true;
if (!Math.min(like1.size(), like2.size()) == Math.max(like1.size(), like2.size()))
{
flag = false;
}
for (int i = 0; i < Math.min(like1.size(), like2.size()); i++) {
if (!like1.get(i).equals(like2.get(i))) {
flag = false;
break;
}
}
答案 2 :(得分:-2)
您可以使用removeAll()方法执行此操作。
fileArray.removeAll(fileTxt);
fileTxt.removeAll(fileArray);
如果其中一个仍然有数据,则意味着两个List的位置不同。
但是我不建议您在Java列表中存储500万个数据。也许您应该考虑其他事情。