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); } }