问题描述:
    有一个字符串数组例如:String str[],内容是:li,wang,liwang,zhang,sun.....里面有相同的元素。
    先欲将其放入新的字符串数组str1中,要求没有相同的元素。

解决方案 »

  1.   

    具体代码如下: public static void main(String[] args) {
    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);
    }
    }
      

  2.   

    奔泪中....
    初学JAVA,才学到字符串,有木有其他的方法?我想通过比较进行排除,但是开始的还可以,到后面的元素就有点混乱了。
      

  3.   

    hashset 好吧,我去研究下....
      

  4.   

    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
      

  5.   

    我也推荐使用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));
    }