String[] str1={"a","b","c","d","e"};
String[] str2={"a","b","c","d","e"};
String[] str3={"b","b","c","d","e"};
String[] str4={"b","b","c","d","e"};
String[] str5={"a","b","b","d","d"};
String[] str6={"a","c","c","d","e"};
进行分组后显示
String[] str1={"a","b","c","d","e"};
String[] str5={"a","b","b","d","d"};
String[] str6={"a","c","c","d","e"};
String[] str3={"b","b","c","d","e"};
用java怎么实现呀急急!!!!!

解决方案 »

  1.   

    都是一个字符吗?连接成字符串,然后Arrays.sort,或者逐个equals排序
      

  2.   

    直接放到set里面再取出来就是了
      

  3.   

    Arrays.equals(Object args,Object args);
    这个方法可以用来直接对你的问题两两进行判断。
      

  4.   

    可以参考以下程序:
    import java.util.*;class StringArray {
    private String[] sa;
    public StringArray(String[] sa) {
    this.sa = sa;
    }
    public String[] getArray() {
    return sa;
    }
    public boolean equals(Object other) {
    return Arrays.equals(this.getArray(), ((StringArray)other).getArray());
    }
    }public class Test {
    public static void main(String[] args) {
    String[][] strs={{"a","b","c","d","e"}, 
    {"a","b","c","d","e"}, 
    {"b","b","c","d","e"},
    {"b","b","c","d","e"},
    {"a","b","b","d","d"},
    {"a","c","c","d","e"}}; 

    List<StringArray> list = new ArrayList<StringArray>();
    for(String[] a : strs){
    StringArray sa = new StringArray(a);
    if(!list.contains(sa)){
    list.add(sa);
    }
    }

    for(StringArray sa : list) {
    String[] a = sa.getArray();
    for(int i=0; i<a.length; i++){
    if(i==a.length-1){
    System.out.println(a[i]);
    } else {
    System.out.print(a[i] + ",");
    }
    }
    }
    }
    }
      

  5.   

    如果所有字符串都是一个字符的,1楼方法很好,但是要注意连接成字符串前要对str1这些字符串数组排序,否则可能这样
    str1 = {"a", "b", "c"}
    str2 = {"a", "c", "b"}
    其实str1,str2应该是一个分组的,但是如果直接连接成一个字符串的话,就是"abc"和"acb",这就不是一个分组了另外我觉得可以这样解决,可能会更加适用于普遍现象:每一个str1..n,建一个Map<String, Integer>的实例,然后扫描数组,发现一个就在map中加1, 这样,最后对比所有map中String 的个数一样的话,那么就表示这两个数组是一个分组的。这样不仅不需要考虑顺序问题,也不需要管字符串是不是一个字符的问题。
      

  6.   

    public class Test { /**
     * @param args
     */
    public static void main(String[] args) {
    String[] str1 = { "a", "b", "c", "d", "e" };
    String[] str2 = { "a", "b", "c", "d", "e" };
    String[] str3 = { "b", "b", "c", "d", "e" };
    String[] str4 = { "b", "b", "c", "d", "e" };
    String[] str5 = { "a", "b", "b", "d", "d" };
    String[] str6 = { "a", "c", "c", "d", "e" }; String st1 = convertToString(str1);
    String st2 = convertToString(str2);
    String st3 = convertToString(str3);
    String st4 = convertToString(str4);
    String st5 = convertToString(str5);
    String st6 = convertToString(str6); Set<String> s = new HashSet<String>();
    s.add(st1);
    s.add(st2);
    s.add(st3);
    s.add(st4);
    s.add(st5);
    s.add(st6); for (String ss : s) {
    System.out.println(ss);
    } } public static String convertToString(String[] arr) {
    StringBuilder sb = new StringBuilder();
    for (String st : arr) 
        sb.append(st);

    return sb.toString();
    }}
      

  7.   

    LZ
    String[] a = {"a", "b"};
    String[] b = {"b", "a"};
    // 算不算是一組?
    如果算,拼字符串的做法显然不行那就把每个数组的东西都扔到一个Set里去,然后用Set的equals方法就结了。
      

  8.   

    应该加个排序就可以了:
    public static String convertToString(String[] arr) {
            Arrays.sort(arr);
            StringBuilder sb = new StringBuilder();
            for (String st : arr) 
                sb.append(st);
            
            return sb.toString();
        }
      

  9.   


    import java.util.*;class StringArray {
        private String[] sa;
        public StringArray(String[] sa) {
            this.sa = sa;
        }
        public String[] getArray() {
            return sa;
        }
        public boolean equals(Object other) {
            return Arrays.equals(this.getArray(), ((StringArray)other).getArray());
        }
    }public class Test {
        public static void main(String[] args) {
            String[][] strs={{"a","b","c","d","e"}, 
                    {"a","b","c","d","e"}, 
                    {"b","b","c","d","e"},
                    {"b","b","c","d","e"},
                    {"a","b","b","d","d"},
                    {"a","c","c","d","e"}}; 
            
            List<StringArray> list = new ArrayList<StringArray>();
            for(String[] a : strs){
                StringArray sa = new StringArray(a);
                if(!list.contains(sa)){
                    list.add(sa);
                }
            }
            
            for(StringArray sa : list) {
                String[] a = sa.getArray();
                for(int i=0; i<a.length; i++){
                    if(i==a.length-1){
                        System.out.println(a[i]);
                    } else {
                        System.out.print(a[i] + ",");
                    }
                }
            }
        }
    }
      

  10.   

    public class Test {    /**
         * @param args
         */
        public static void main(String[] args) {
            String[] str1 = { "a", "b", "c", "d", "e" };
            String[] str2 = { "a", "b", "c", "d", "e" };
            String[] str3 = { "b", "b", "c", "d", "e" };
            String[] str4 = { "b", "b", "c", "d", "e" };
            String[] str5 = { "a", "b", "b", "d", "d" };
            String[] str6 = { "a", "c", "c", "d", "e" };        String st1 = convertToString(str1);
            String st2 = convertToString(str2);
            String st3 = convertToString(str3);
            String st4 = convertToString(str4);
            String st5 = convertToString(str5);
            String st6 = convertToString(str6);        Set<String> s = new HashSet<String>();
            s.add(st1);
            s.add(st2);
            s.add(st3);
            s.add(st4);
            s.add(st5);
            s.add(st6);        for (String ss : s) {
                System.out.println(ss);
            }    }    public static String convertToString(String[] arr) {
            StringBuilder sb = new StringBuilder();
            for (String st : arr) 
                sb.append(st);
            
            return sb.toString();
        }}