1、Collection
Iterator迭代器
iterator的方法:
hashNext():判断集合中元素是否遍历完毕,如果没有,就返回true。
next():则是返回下一个元素,这样对于需要遍历的地方,就不需要知道元素的个数了。
Collection和Collections的区别
- Collection 是一个集合接口(集合类的一个顶级接口),它是Set、List等容器的父接口。
- Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。
- 排序(sort)
import java.util.*;
public class HashMapTest {
public static void main(String[] args) {
List <Integer> list=new LinkedList<>();
list.add(8);
list.add(2);
list.add(6);
list.add(4);
Collections.sort(list);
for(Integer l:list){
System.out.print(l+"\t");
}
}
}
输出:2 4 6 8
- 混排(shuffle)
import java.util.*;
public class HashMapTest {
public static void main(String[] args) {
List <Integer> list=new LinkedList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
Collections.shuffle(list);
for(Integer l:list){
System.out.print(l+"\t");
}
}
}
输出:1 4 3 2
- 反转(reverse)
import java.util.*;
public class HashMapTest {
public static void main(String[] args) {
List <Integer> list=new LinkedList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
Collections.reverse(list);
for(Integer l:list){
System.out.print(l+"\t");
}
}
}
输出:4 3 2 1
- swap(List list, int i, int j)
将指定列表中的两个索引进行位置互换
public class HashMapTest {
public static void main(String[] args) {
List <Integer> list=new LinkedList<>();
list.add(8);
list.add(2);
list.add(6);
list.add(4);
Collections.swap(list,2,1);
for(Integer l:list){
System.out.print(l+"\t");
}
}
}
输出: 8 6 2 4
List
ArrayList
LinkedList
- ArrayList的实现是基于数组,LinkedList的实现是基于双向链表。
- LinkedList比ArrayList更占内存。因为LinkedList的节点除了存储数据,还存储了两个引用,一个指向前一个元素,一个指向后一个元素。
- 在ArrayList集合中添加或者删除一个元素时,当前的列表所所有的元素都会被移动。
- 对于随机访问,ArrayList优于LinkedList。对于访问,ArrayList优于LinkedList,因为arraylist可以随机定位,但linklist需要移动指针一步一步的移动到节点处。
Set
HashSet
TreeSet
Queue
2、Map
HashMap
TreeMap
-
HashMap是通过hashcode()对其内容进行快速查找的;HashMap中的元素是没有顺序的;
-
TreeMap中所有的元素都是有某一固定顺序的,如果需要得到一个有序的结果,就应该使用TreeMap;
-
对于插入,删除,查找映射中的元素,HashMap时最好的选择。如果要遍历一组有序的键,TreeMap是最好的选择。