用来替代迭代器的,简化数组和Collection集合的遍历
for(TYPE name:collectionName) {
...
}
public class 类名<泛型类型1,…> //泛型类
public <泛型类型> 返回类型 方法名(泛型类型 .) //泛型方法
public interface 接口名<泛型类型1…> //泛型接口
Collection> c = new ArrayList
1:添加功能
boolean add(Object obj):添加一个元素
boolean addAll(Collection c):添加一个集合的元素
2:删除功能
void clear():移除所有元素
boolean remove(Object o):移除一个元素
boolean removeAll(Collection c):只要有一个元素被移除了,就返回true
3:判断功能
boolean contains(Object o):判断集合中是否包含指定的元素
boolean containsAll(Collection c):判断集合中是否包含指定的集合元素(是所有)
boolean isEmpty():判断集合是否为空
4:获取功能
Iterator iterator()(重点)
5:长度功能
int size():元素的个数
6:交集功能
boolean retainAll(Collection c):返回交集给对应的对象
7:把集合转换为数组
Object[] toArray()
有序(存储顺序和取出顺序一致),可重复
底层数据结构是数组
,查询快,增删慢。
线程不安全,效率高。
底层数据结构是数组
,查询快,增删慢。
线程安全,效率低。
添加功能
public void addElement(Object obj) -- add()
获取功能
public Object elementAt(int index) -- get()
public Enumeration elements() -- Iterator iterator()
boolean hasMoreElements() hasNext()
Object nextElement() next()
底层数据结构是链表
,查询慢,增删快。
线程不安全,效率高。
添加功能
public void addFirst(Object e)
public void addLast(Object e)
获取功能
public Object getFirst()
public Obejct getLast()
删除功能
public Object removeFirst()
public Object removeLast()
无序(存储顺序和取出顺序不一致),唯一
底层数据结构是哈希表(元素是链表的数组)
哈希表依赖于哈希值存储
添加功能底层依赖两个方法:
int hashCode()
boolean equals(Object obj)
元素有序唯一
由链表保证元素有序
由哈希表保证元素唯一
使用元素的自然顺序对元素进行排序
或者根据创建 set 时提供的 Comparator 进行排序
具体取决于使用的构造方法。
public static void sort(List list):排序 默认情况下是自然顺序。
public static int binarySearch(List> list,T key):二分查找
public static T max(Collection> coll):最大值
public static void reverse(List> list):反转
public static void shuffle(List> list):随机置换
1:添加功能
V put(K key,V value):添加元素。这个其实还有另一个功能?先不告诉你,等会讲
如果键是第一次存储,就直接存储元素,返回null
如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值
2:删除功能
void clear():移除所有的键值对元素
V remove(Object key):根据键删除键值对元素,并把值返回
3:判断功能
boolean containsKey(Object key):判断集合是否包含指定的键
boolean containsValue(Object value):判断集合是否包含指定的值
boolean isEmpty():判断集合是否为空
4:获取功能
Set> entrySet():???
V get(Object key):根据键获取值
Set keySet():获取集合中所有键的集合
Collection values():获取集合中所有值的集合
5:长度功能
int size():返回集合中的键值对的对数
Ctrl+1 快速修复,快速导包
调试
F5单步调试进入函数内部。
F6单步调试不进入函数内部。
F7由函数内部返回到调用处。
F8一直执行到下一个断点。
2018.4.30 重新修改