栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

TreeMap行为异常

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

TreeMap行为异常

因为

"10"
在字典上小于
"2"

这里有一个提示:

Map<Integer,String> map = new TreeMap<Integer,String>();map.put(10, "America");map.put(1, "Australia");map.put(2, "India");map.put(11, "China");System.out.println(map);// {1=Australia, 2=India, 10=America, 11=China}

这是另一个提示:

String#compareTo(String)
vs
Integer#compareTo(Integer)

你能否解释一下“ 10”在字典上小于“ 2”是什么意思。

首先,阅读我链接的JavaDoc,尤其是第一个链接。

现在,让我们回顾一些简单的字符串比较:

  • “ a”显然先于“ b”
  • 同样,“ b”在“ z”之前

将其扩展为数字字符不需要花费太多时间:

  • “ 0”在“ 1”之前
  • “ 1”位于“ 9”之前

单个字符的顺序,比如a,b,z,0,1,和9被称为他们的字典顺序。简而言之,每个字符都有数字表示,你不会感到惊讶。

现在让我们看一些更复杂的字符串比较:

  • “ aa”在“ bb”之前(这不足为奇)
  • “ aa”也在“ ab”之前

我们如何确定第二种情况?逐个字符。

1. "a" is the same character as "a", so we need to keep going2. "a" comes before "b", so we're done.

再举一个例子:“ ba”在“ c”之前,因为“ b”在“ c”之前。

让我们对包含数字字符的字符串执行相同的操作:

“ 2”在“ 10”之前吗?我们逐个字符地进行比较:

“ 2”在“ 1”之前吗?不,它来了,所以我们已经完成了。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/372859.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号