list(列表)
List:元素是有序的、可以重复
ArrayList:底层的数据结构使用的是数组结构(数组长度是可变的百分之五十延长)(特点是查询很快,但增删较慢)线程不同步
LinkedList:底层的数据结构是链表结构(特点是查询较慢,增删较快)
方法:
boolean add(int index, E element)
boolean addAll(index,Collection)
boolean remove(int index)
Object set(int index, E element) 返回的是修改的那个元素
get(int index) 返回列表中指定位置的元素
subList(int fromIndex, int toIndex) [)开区间~~~闭区间
void clear():删除集合中所有的对象,
List集合特有的迭代器:ListIterator(是Iterator的子接口)
LinkedList:特有方法:
offerFirst(); offerLast(); //插入第一个 插入最后一个
peekFirst(); peekLast(); 获取元素,但是元素不被删除。如果集合中没有元素,会返回null
pollFirst(); pollLast(); 获取元素,但是元素被删除。如果集合中没有元素,会返回null
Set(集合): Set是最简单的一种集合。无序,不重复。 Set接口主要实现了两个实现类:
HashSet: HashSet类按照哈希算法来存取集合中的对象,存取速度比较快
TreeSet :TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。
set遍历:
1.迭代遍历:
Set<String> set = new HashSet<String>();
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.println(str);
}
2.for循环遍历:
for (String str : set) {
System.out.println(str);
}
优点还体现在泛型 假如 set中存放的是Object
Set<Object> set = new HashSet<Object>();
for循环遍历:
for (Object obj: set) {
if(obj instanceof Integer){
int aa= (Integer)obj;
}else if(obj instanceof String){
String aa = (String)obj
}
........
}
Map(映射):
Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。Map没有继承于Collection接口从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。
HashMap 在HashMap中, 不是线程安全的 (SynchronizedMap ) null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null
Hashtable Hashtable是线程安全的
Object put(Object key, Object value): 向集合中加入元素
Object remove(Object key): 删除与KEY相关的元素
void putAll(Map t): 将来自特定映像的所有元素添加给该映像
void clear():从映像中删除所有映射
Object get(Object key):获得与关键字key相关的值
for(Object obj : map.keySet()){
Object value = map.get(obj );
}