- Collection接口
Collection方法 | 描述 |
---|---|
boolean add(E obj) | 将obj添加到集合中 |
boolean remove(Object obj) | 从集合中删除obj实例 |
void clear() | 删除调用集合中的所有元素 |
void contains(Object obj) | 判断集合中是否包含某元素 |
void isEmpty() | 判断集合中是否为null |
void size() | 返回集合中的元素数量 |
Iterator() | 返回调用集合的一个迭代器 |
(1)List:有顺序的,可重复的
List方法 | 描述 |
---|---|
boolean add(int index,E obj) | 将obj添加到集合中的指定索引位置 |
boolean remove(int index) | 从集合中删除索引位置元素 |
boolean indexOf(Object obj) | 返回第一个obj实例的索引 |
List接口实现:
ArrayList:底层就是数组,查询快,增删快
LinkedList:底层是双向链表,会存放前后元素指针,查询慢,增删快
addFirst(),addLast,removeFirst(),removeLast()
get(int index),getFirst(),getLast()
(2)Set:无序的,不可重复的 HashSet(要保证对象唯一)和TreeSet
(3)迭代器
Iterator it = lst.iteraor();//获取迭代器
it.hasnext;//判断下一个元素是否存在
while(it.hasnext){
it.next()//获取下一个元素
}
- Map-hashMap
概念介绍:
(1)数组,采用一段连续的存储单元来存储数据,指定下标查找较快,通过给定值查找需要遍历,插入涉及到数组元素移动
(2)线性链表,新增删除等,仅需要处理节点间的引用即可(快),而查找操作需要遍历链表逐一进行比对(慢),
(3)二叉树,对一颗相对平衡的有序二叉树,对其插入、查找、删除等,速度都居中O(logn),类似二分法查找数组
(4)hash表:添加、删除、查找性能都很高,仅需要一次定位就可以完成
location = hash(关键字)
(5)HashMap是由数组+链表组成的
(6)hash(key)%16->取余->index->栈中的地址
得到数组下标后,可以将key-value一起存到数组中
存入数据时,先拿index进行比对,如果inedx存在,比hash和key是否相等,如果不等,以链表方式存储新的数据
//传值,删除
Map map=new HashMap();
map.put("key1","value1");
map.put("key2","value2");
map.remove();
//遍历方式1
Set keys = map.keySet();
Iterator it = keys.iterator();
while(it.hasnext){
String key = it.next();//获取下一个元素
String value = map.get(key);
}
//遍历方式2
Set set = map.entrySet();//获取map键值对结合
Iterator it1 = keys.iterator();
while(it.haNext()){
Map.Entry entry = (Map.Entry)it.next();获取到每一个键值对对象
entry.getKey();
entry.getValue();
}