List的有序性和Map的无序性问题
此为个人学习中遇到的问题,记录一下,如有不足之处,欢迎交流指正
大部分人可能只知道List和Map的一个区别是有序无序,但并不清楚这个有序无序到底指的是什么有序无序,经过一番查找之后,得出如下结论:
-
List的有序性一是指值插入的顺序性,即如果使用add添加到list末尾,那么便利的顺序是和插入的顺序一致的;如果采用随机插入,那么插入的位置也是已经确定的,就是人为的确定了它的位置。所以说List是有序的。
-
List的有序性二是指其内部的元素可以按照某种规则进行排序,所以说List是有序的。
-
Map的无序性一是指Map的插入顺序和遍历顺序是不一致的,无法人为的确定插入位置,必须通过hash值来得到其存放位置,是固定的。所以说Map是无序的。
-
Map的无序性二是指Map中的元素无法按照某种规则进行排序,因为它的位置只与hash值和其内部数组大小有关,其位置无法进行人为改变。所以说Map是无序的。
Map<String, String> hashMap = new HashMap<>();
List<Integer> list = new ArrayList<>();
hashMap.put("1","111");
hashMap.put("5","555");
hashMap.put("7","777");
hashMap.put("10","100");
hashMap.put("15","150");