Interable
collection
list
链表:内存中储蓄不连续,方便删除和添加。
二叉树用于排序查找
list可以有重复元素
list添加和打印的顺序一致
常用的方法:
add在尾部添加元素
add index在指定位置添加元素
element 把一个元素换成另外一个
clear清除所有的元素
remove 移除此列表中指定位置上的元素。
contains判断元素是否在list中
lastindexof倒着找
Arraylist(用数组存储,是连续的)
ArrayList的构造方法:
ArrayList() 构造一个初始容量为 10 的空列表。 |
ArrayList(Collection<? extends E> c) 构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。 |
首先四种添加方法要两两区分:
add(int index, E element)
将指定的元素插入此列表中的指定位置。
addAll(Collection<? extends E> c)
按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部。
addAll(int index, Collection<? extends E> c)
从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。
get(int index)
返回此列表中指定位置上的元素。
set(int index, E element)
用指定的元素替代此列表中指定位置上的元素。
size()
(遍历数组的时候用size获取长度)
返回此列表中的元素数。
频繁的查找用Arraylist
优点:遍历元素和随机访问元素的效率比较高
添加和删除需要大量移动元素效率低,按照内容查询效率低
remove(Object o)
(也可以用index移除指定未知的元素)
移除此列表中首次出现的指定元素(如果存在)。
linkedlist(用链表存储,不连续)
优点:插入、删除元素时效率比较高
缺点:遍历和随机访问元素效率低下
常用方法:
element()
获取但不移除此列表的头(第一个元素)。
hashset
底层是数组和链表
添加,查询,删除快。
相同的字符串肯定具有相同的hashcode
修改set 元素的唯一 方法就是重写equals方法
如果重写了equals方法,必须重写hashcode方法
HashSet()
构造一个新的空 set,其底层 HashMap 实例的默认初始容量是 16,加载因子是 0.75。
TreeSet:
用二叉树存储(二叉树可以搜索排序)
treeset用compareto去重
先序遍历:先左,在中,在右
二叉树相等用compareto,因为二叉树比较的是大小。
有迭代器方法或接口的可以用增强for循环。
for(类型 变量名 集合){
syso(变量名);
}
map映射
HashTable不允许空键空值
HashMap允许空键空值
一个key对应一个value
TreeMap的key必须实现comporate根据key排序
properties是配置文件。
泛型:解决数据类型操作不统一产生的异常
在类上定义的泛型可以给成员方法,成员属性,和static用。