ArrayList 只能对一次读入到内存中的所有对象 用contains方法去判断,从而去除重复。
List<String> seqId = new ArrayList<String>(); for (int i = 0; i < AllLines.length; i++) { String[] eachLine = AllLines[i].split("[\t]"); //System.out.println(eachLine[0]); if (!seqId.contains(eachLine[0])) { seqId.add(eachLine[0]); } }
HashSet 可以去除重复;
而且要指定对象类型,
HashSet<String> seqIdSet = new HashSet<String>(); Iterator<String> IdS = seqIdSet.iterator(); while(IdS.hasNext()){ String tmpID = IdS.next(); String tmp = new String(tmpID); String eachIDInSet = tmp.substring(0,tmp.indexOf(".")); System.out.println("......"+eachIDInSet); System.out.println(eachIDInSet); }
而且Iterator 只能生成一次迭代对象,不能重复使用。
Iterator<String> IdS = seqIdSet.iterator(); // 这一句如果不指定 <String> 这种类型的对象, 后面的String tmpID = IdS.next(); 就要改为 Object tmpID = IdS.next();
需导入的java类如下:
/** import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.BufferedReader; import java.util.Scanner; */ import java.util.Iterator; import java.util.HashMap; import java.util.Set; import java.util.HashSet; import java.util.ArrayList; import java.util.List;
本文出自 “R语言学习历程” 博客,请务必保留此出处http://matrix6ro.blog.51cto.com/1746429/1773312
Java的ArrayList 无法去除重复,采用HashSet
原文地址:http://matrix6ro.blog.51cto.com/1746429/1773312