您的位置:首页 > 其它

list<string>简单级联深入解析

2017-03-01 14:52 218 查看
首先,新建一个list<String>集合

 

List<String> nums = new ArrayList<String>();

然后,向集合中添加级联信息比如:

nums.add("101");
nums.add("102");
nums.add("103");
nums.add("1011");
nums.add("1012");
nums.add("1021");
nums.add("1002");
nums.add("1003");
nums.add("1004");
nums.add("2001");
nums.add("10021");
nums.add("10022");
nums.add("10023");
nums.add("10031");

 

那么,怎么将添加的信息以级联的形式储存在数组中?

可以使用如下方法

 Collections.sort(nums);
System.out.println(nums.toString());
 

通过Collections.sort方法就可以显示级联,结果:

 


*注意:结果是从小到大的顺序进行排列的

 

为什么101反而在1002之后呢,这要从sort方法开始找起

 


通过源码我们可以知道,sort方法里将list集合转换为object数组然后进行了Array.sort排序,再继续往里找

 


里面又调用了其他方法,再继续往里找

 


才发现string排序时使用了compareTo方法,那么这个compareTo方法是什么

 


进行string比对时,其实比对的是Unicode编码,所以我进行了如下测试

 


结果为1,所以t1>t2(从编码表的结果来看是t1>t2)

所以出现了如之前图所展示的序列
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: