我正在尝试从输入文件中删除重复的名称,并仅打印出所有名称一次。这是我的代码:
public static void main(String[] args) throws IOException {
ArrayList<String> fn = new ArrayList<String>();
ArrayList<String> ln = new ArrayList<String>();
ArrayList<String> names = new ArrayList<String>();
getNames(fn,ln);
System.out.println("\n******* All Unique Names*********");
remove(names);
}
public static int find(String s, ArrayList<String> a) {
for (int i = 0; i < a.size(); i++)
if (a.get(i).equals(s))
return i;
return -1;
}
public static int remove(ArrayList<String>n){
//int found = find(names, n);
int index = 0;
while (index < n.size() - 1) {
if (n.get(index).equals(n.get(index + 1))) {
n.remove(index + 1);
} else {
index++;
}
}
System.out.println(n);
return index;
}
}
如何打印没有重复的名称?
答案 0 :(得分:1)
您可以尝试使用HashSet而不是ArrayList。
将所有名称保存在HashSet中,并在完成保存后将其打印出来。这不会给你重复的名字。
答案 1 :(得分:1)
试试这个
$sisa_tempo_bro
答案 2 :(得分:0)
以下是如何使用Set
删除重复名称的示例 ArrayList<String> names = new ArrayList<String>();
names.add("abc");
names.add("bcd");
names.add("abc");
System.out.println("Names with duplicate : ");
System.out.println(names);
Set<String> uniqueNames = new HashSet<String>(names);
System.out.println("Names without duplicate : ");
System.out.println(uniqueNames);
请试试这个。 输出:
Names with duplicate :
[abc, bcd, abc]
Names without duplicate :
[abc, bcd]