Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找唯一和重复的值_Java_Arrays_Apache_Apache Poi - Fatal编程技术网

Java 查找唯一和重复的值

Java 查找唯一和重复的值,java,arrays,apache,apache-poi,Java,Arrays,Apache,Apache Poi,在单元格1中,我有一个值列表,即[4000400140024003],在单元格2中,我有一个值列表,即[12344000]。我试图找到重复和唯一的价值,但即使它有重复的价值,它每次去其他部分。为什么任何代码都错了 Iterator itr = cells2.iterator(); while(itr.hasNext()){ HSSFCell s = (HSSFCell) itr.next(); boolean sta = cells1.contains(s.get

单元格1中,我有一个值列表,即[4000400140024003],在单元格2中,我有一个值列表,即[12344000]。我试图找到重复和唯一的价值,但即使它有重复的价值,它每次去其他部分。为什么任何代码都错了

Iterator itr = cells2.iterator();
    while(itr.hasNext()){
      HSSFCell s = (HSSFCell) itr.next();
      boolean sta = cells1.contains(s.getStringCellValue());
        if(sta==true){
        System.out.println("Dublicate:>>>>"+s.toString());
         }else{
           System.out.println("unique value:>>>>:"+s.toString());
              }
         }
     }
输出值为:

唯一值:>>>>:1234


唯一值:>>>>:4000从您的注释中
cells1
ArrayList
,因此您正在调用
cells1.contains(s.getStringCellValue())
意味着在
单元格的
数组列表中查找
字符串
,这不会做任何事情,这就是它进入else部分的原因

最终,您试图在
单元格中查找
字符串
,这是不可能直接找到的

必须将
ArrayList
的每个单元格的
String
值(表示单元格的
String
值)与
s进行比较。getStringCellValue()
必须重写
contains
方法或声明自己的方法

public boolean isThereAnyCellWithString(String str){
//Iterate over cells1 and compare 
//Use contains here if you want to or equals to find exact match
 for(HSSFCell cell : cells1){
     if(cell.getStringCellValue().contains(str))
     return true;
 }
 return false;
}

仅供参考,如果(sta)
,您可以执行
操作。
getStringCellValue()
返回什么。为什么不在这里执行
toString()
?@Stanley List cells1=new ArrayList()@AniketThakur我甚至使用ToString(),但没有相同的输出更改。
List cells2=new ArrayList()
考虑到这一点,除非在
单元格
类中有overiden
.equals()
,否则代码将无法工作。也无需使用
getStringCellValue()
toString()