我有2个ArrayList
List fileArray =新ArrayList();List fileTxt =新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中的单词。(所以基本上它的like包含)
发布于 2018-10-29 02:01:18
要比较两个数组列表中的两个值,请执行以下操作:
if(fileArray.get(index).equals(fileTxt.get(index)))
发布于 2018-10-29 02:43:22
有一个奇妙的功能。
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;
}
}
发布于 2018-10-29 02:02:29
您可以使用removeAll()方法来完成此操作。
fileArray.removeAll(fileTxt);
fileTxt.removeAll(fileArray);
如果他们中的一个仍然有数据,这意味着两个列表是不同的。
但是,我不会建议您在Java列表中存储500万数据。也许你应该想点别的。
https://stackoverflow.com/questions/53034498
复制相似问题