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怎么实现呀急急!!!!!
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怎么实现呀急急!!!!!
这个方法可以用来直接对你的问题两两进行判断。
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] + ",");
}
}
}
}
}
str1 = {"a", "b", "c"}
str2 = {"a", "c", "b"}
其实str1,str2应该是一个分组的,但是如果直接连接成一个字符串的话,就是"abc"和"acb",这就不是一个分组了另外我觉得可以这样解决,可能会更加适用于普遍现象:每一个str1..n,建一个Map<String, Integer>的实例,然后扫描数组,发现一个就在map中加1, 这样,最后对比所有map中String 的个数一样的话,那么就表示这两个数组是一个分组的。这样不仅不需要考虑顺序问题,也不需要管字符串是不是一个字符的问题。
* @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();
}}
String[] a = {"a", "b"};
String[] b = {"b", "a"};
// 算不算是一組?
如果算,拼字符串的做法显然不行那就把每个数组的东西都扔到一个Set里去,然后用Set的equals方法就结了。
public static String convertToString(String[] arr) {
Arrays.sort(arr);
StringBuilder sb = new StringBuilder();
for (String st : arr)
sb.append(st);
return sb.toString();
}
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] + ",");
}
}
}
}
}
* @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();
}}