HashSet实现的,遇到重复的字符串就打出来. import java.util.HashSet; public class FindTheDup { public static void main (String args []) { String [] st = {"a","b","c","d","a","a"}; HashSet<String> hs = new HashSet<String>(); for (int i = st.length-1; i >= 0; i--){
if (!hs.contains(st[i])) { hs.add(st[i]); }else { //打印重复的字符串 System.out.println(st[i]); } } } }输出结果: a a
我也推荐使用hashset,它可以直接过滤重复,但是字符串在hashset中存放的顺序会打乱 如果LZ需要有序的话,可以参考下面 String[] ss = { "1", "1", "2", "2", "3", "3" }; List list = new ArrayList(); for (int i = 0; i < ss.length; i++) { boolean temp = true; if (list.size() == 0) list.add(ss[i]); for (int j = 0; j < list.size(); j++) { if (list.get(j).equals(ss[i])) { temp = false; break; } } if (temp) list.add(ss[i]); } for (int i = 0; i < list.size(); i++) { System.err.println(list.get(i)); }
String[] strs = new String[]{"a","a","b","b","c","c","d","d","e","e"};
System.out.println("起始含有重复数据的数组:");
for(String s : strs){
System.out.println(s);
}
Set<String> set = new HashSet<String>();
for(String str : strs){
set.add(str);
}
strs = new String[set.size()];
Iterator<String> iterator = set.iterator();
int i = 0;
while(iterator.hasNext()){
strs[i++] = iterator.next();
}
System.out.println("去掉重复数据的数组:");
for(String s : strs){
System.out.println(s);
}
}
初学JAVA,才学到字符串,有木有其他的方法?我想通过比较进行排除,但是开始的还可以,到后面的元素就有点混乱了。
import java.util.HashSet;
public class FindTheDup { public static void main (String args []) {
String [] st = {"a","b","c","d","a","a"};
HashSet<String> hs = new HashSet<String>();
for (int i = st.length-1; i >= 0; i--){
if (!hs.contains(st[i])) {
hs.add(st[i]);
}else {
//打印重复的字符串
System.out.println(st[i]);
}
}
}
}输出结果:
a
a
如果LZ需要有序的话,可以参考下面
String[] ss = { "1", "1", "2", "2", "3", "3" };
List list = new ArrayList();
for (int i = 0; i < ss.length; i++) {
boolean temp = true;
if (list.size() == 0)
list.add(ss[i]);
for (int j = 0; j < list.size(); j++) {
if (list.get(j).equals(ss[i])) {
temp = false;
break;
}
}
if (temp)
list.add(ss[i]);
}
for (int i = 0; i < list.size(); i++) {
System.err.println(list.get(i));
}