HashSet 本身无序。 就算有序也只是自然排序。即按 字母排。
解决把法:
自己写一个了 //这个后面不太记得,你点一下。 在网吧实在没办法测试。
public class MyString implements java.util.Complatorable {
String str = "";
public MyString(String str ){
this.str = str;
}
//重写里面的方法。
}将你集合中的字符传都封装成这个对象
然后放到 TreeSet 中就会自动排序的拉。
解决把法:
自己写一个了 //这个后面不太记得,你点一下。 在网吧实在没办法测试。
public class MyString implements java.util.Complatorable {
String str = "";
public MyString(String str ){
this.str = str;
}
//重写里面的方法。
}将你集合中的字符传都封装成这个对象
然后放到 TreeSet 中就会自动排序的拉。
String[] a = {"A", "AB", "ABC", "ABCD", "ABCE", "ABD", "ABDE", "ABE", "AC", "ACD", "ACDE", "ACE", "AD", "ADE", "AE", "B", "BC", "BCD", "BCDE", "BCE", "BD", "BDE", "BE", "C", "CD", "CDE", "CE", "D", "DE", "E"};
List<String> list = new ArrayList<String>();
for(int i=0;i<a.length;i++) {
list.add(a[i]);
}
Collections.sort(list, new Comparator<String>() {
public int compare(String o1, String o2) {
if(o1==null) {
return -1;
}
if(o2==null) {
return 1;
}
return (o1.length()-o2.length());
}
});
System.out.println(list);
public class Test {
public static void divide(String str, ArrayList list) {
for (int i = 0; i < str.length(); i++) {
String str2;
if (i == 0)
str2 = str.substring(i + 1);
else if (i < str.length() - 1)
str2 = str.substring(0, i) + str.substring(i + 1);
else
str2 = str.substring(0, i);
list.add(str2);
if (str2.length() > 1)
divide(str2, list);
}
}
}
2.import java.util.*;
public class ck {
public static void main(String[] args) {
String[] a = {"A", "AB", "ABC", "ABCD", "ABCE", "ABD", "ABDE", "ABE", "AC", "ACD", "ACDE", "ACE", "AD", "ADE", "AE", "B", "BC", "BCD", "BCDE", "BCE", "BD", "BDE", "BE", "C", "CD", "CDE", "CE", "D", "DE", "E"};
List <String> list = new ArrayList <String>();
for(int i=0;i <a.length;i++) {
list.add(a[i]);
}
Collections.sort(list, new Comparator <String>(){
public int compare(String o1, String o2) {
if(o1==null) {
return -1;
}
if(o2==null) {
return 1;
}
return (o2.length()-o1.length());
}
});
System.out.println(list);
}
}在JSP下调用包 例如<%@ page import="java.util.*" %>
<%@ page import="org.Test" %>
<%
String stuMessage ="ABCDE";........在变量定义
HashSet list=new HashSet();
Test test=new Test();
test.divide(stuMessage,list);
out.println(list);%>
程序块1实现
[D, E, A, B, C, ABDE, ACE, ACD, BC, BD, BDE, BE, DE, CDE, ABCD, ABCE, BCDE, ABD, BCD, AC, ABC, AD, AB, CE, ACDE, AE, BCE, CD, ABE, ADE] 调用程序块2 实现 (排序) . 从多到小
[ABCD, ABCE, ABDE, ACDE, BCDE, ABC, ABD, ABE, ACD, ACE, ADE, BCD, BCE, BDE, CDE,
AB, AC, AD, AE, BC, BD, BE, CD, CE, DE, A, B, C, D, E]
List <String> list = new ArrayList <String>();
for(int i=0;i <a.length;i++) {
list.add(a[i]);
}
Collections.sort(list, new Comparator <String>() {
public int compare(String o1, String o2) {
if(o1==null) {
return -1;
}
if(o2==null) {
return 1;
}
return (o1.length()-o2.length());
}
});
System.out.println(list);
package backgrounp.reminder;import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;public class JHashSet {
public static void main(String[] args) {
Set<String> set = new HashSet<String>();
Set<String> set2 = new HashSet<String>();
Set<String> set3 = new HashSet<String>();
List<String> list = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
Map map = new HashMap();
Map map2 = new HashMap();
set.add("C");
set.add("BC");
set.add("AC");
set.add("ABDE");
set.add("BEDE");
set.add("ADE");
for (String str : set) {
map.put(str, str.length());
}
map2 = sortByValue(map);
System.out.println(map2);
set2 = map2.keySet();
for (String str : set2) {
list.add(str);
}
for (int i = list.size() - 1; i > 0; i--) {
list2.add(list.get(i));
}
System.out.println(list2);
} static Map sortByValue(Map map) {
List list = new LinkedList(map.entrySet());
Collections.sort(list, new Comparator() {
public int compare(Object o1, Object o2) {
return ((Comparable) ((Map.Entry) (o1)).getValue())
.compareTo(((Map.Entry) (o2)).getValue());
}
}); Map result = new LinkedHashMap();
for (Iterator it = list.iterator(); it.hasNext();) {
Map.Entry entry = (Map.Entry) it.next();
result.put(entry.getKey(), entry.getValue());
}
return result;
}
}