一、簡述List接口的特點
1、存取有序的集合
2、有索引值
3、元素可以重復
二、hashCode和equals方法
簡述HashCode去除重復元素的原理
1、調用被添加元素的HashCode(),和hashSet中已有元素的HashCode()進行比較
2、如果不同,直接存儲
3、如果相同,調用equals方法比較是否相同
4、不相同,直接存儲元素
5、相同,直接舍棄,不存儲
三、數據結構
簡述常見的數據結構中元素的存取特點
1、棧:stack,又稱堆棧,對元素的存取特點是:先進后出。
即,存進去的元素,要在它后面元素一次取出后,才能取出該元素。
2、隊列:queue,簡稱隊,對元素的存取特點是:先進先出。
即:存進去的元素要在它前邊的元素取出后才能取出。
3、數組:Array,是有序的元素數列,對元素的存取特點是:
1)、查找元素快;通過索引值直接查找數組中的元素。
2)、增刪元素慢;
(1)、指定索引位置增加元素,需要創建一個新的數組,將指定元素
存儲在指定的索引位置,再把元素組元素根據索引復制到新數組對應索引的指定位置。
(2)、刪除指定索引值的元素,需要建立一個新數組,將原數組里面的元素放到新數組中,
需要刪除的指定索引值對應的元素,不放在新數組中。
4、鏈表:linkedList,對元素存取特點:
1)、多個節點之間通過地址值進行連接。
2)、查找元素慢
3)、增刪元素快
增加元素:只需要修改連接下一個元素的地址
刪除元素: 只需要修改連接上一個元素的地址
四、Comparable 和 Comparator 比較器
簡述Comparable和Comparator兩個接口的區別
Comparable:強行對實現它的每個類的對象進行整體排序。
這種順序被稱為類的自然順序
類的compareTo方法被稱為自然的比較方法,只能在類中實現compareTo()
一次,不能經常修改類的代碼實現自己想要的順序。
實現此接口的對象列表(和數組)可以通過Collections.sort(和Arrays.sort)進行自動排序
對象可以用作有序映射中的鍵或者有序集合中的元素,不用指定比較器。
Comparator:強行對某個對象進行整體排序。
可以將Comparator傳遞給sort方法(Collections.sort或Arrays.sort)
從而允許在排序順序上實現精准控制
還可以使用Comparator來控制某些數據結構(如有序set或有序映射)的順序,
或者為那些沒有自然順序的對象collection提供排序。