public class TreeSort {
public static void main(String[] args) {
CollatorComparator comparator = new CollatorComparator();
TreeMap<String, Object> map = new TreeMap<String, Object>(comparator);
for (int i = 0; i < 10; i++) {
String s = "" + (int) (Math.random() * 1000);
map.put(s, s);
}
map.put("abcd", "abcd");
map.put("Abc", "Abc");
map.put("bbb", "bbb");
map.put("BBBB", "BBBB");
map.put("北京", "北京");
map.put("中国", "中国");
map.put("上海", "上海");
map.put("厦门", "厦门");
map.put("香港", "香港");
map.put("碑海", "碑海");
Collection col = map.values();
Iterator it = col.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
// Set set=map.keySet();
Iterator its = map.entrySet().iterator();
while (its.hasNext()) {
// entry的输出结果如key0=value0等
Map.Entry entry = (Map.Entry) its.next();
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println(entry);
// System.out.println(key);
// System.out.println(value);
}
List list = Collections.synchronizedList(new LinkedList());
String s="((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)";
System.out.println("122.068.2.0".matches(s));
}
}
/**
* Java中之所以出现偏差,主要是compare方法的问题,所以这里自己实现Comparator接口,
* 而国际化的问题,使用Collator类来解决。这里先解决中文问题,代码如下:
*
*
*
*/
class CollatorComparator implements Comparator {
Collator collator = Collator.getInstance();
public int compare(Object element1, Object element2) {
CollationKey key1 = collator.getCollationKey(element1.toString());
CollationKey key2 = collator.getCollationKey(element2.toString());
// return -key1.compareTo(key2); 加负号将逆序
return key1.compareTo(key2);
}
}