您可以像这样使用自定义比较器:
Comparator<String> secondCharComparator = new Comparator<String>() { @Override public int compare(String s1, String s2) { return s1.substring(1, 2).compareTo(s2.substring(1, 2)); } };
样品:
SortedMap<String,String> map = new TreeMap<String,String>(secondCharComparator); map.put("Za", "FOO"); map.put("Ab", "BAR"); map.put("00", "ZERO"); System.out.println(map); // prints "{00=ZERO, Za=FOO, Ab=BAR}"
请注意,这只是假设
String字符在索引1处有一个字符
StringIndexOutOfBoundsException。
另外,您也可以使用以下比较:
return s1.charAt(1) - s2.charAt(1);
通常,此减法“技巧”是
char无效的,但在这里可以正常使用,因为减法2 不会溢出
int。
不过
substring,
compareTo上面的and 解决方案更具可读性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)