容器:(里面只能装引用类型)
Collection接口
1.List接口(有序,不唯一)//备注:这里的有序是插入的顺序
ArrayList:底层实现是数组
LinkedList:底层实现是链表
单向列表:每个元素只有一个引用,都是指向后面的节点
双向列表:每个元素有两个引用,一个指向前一个节点,一个指向后一个节点
Vector:线程安全的,jdk1.0版本后就有的,上面两个线程不安全,但是高效
2.Set接口(无序,唯一)
HashSet:底层实现是数组+链表(算法是hashcode码取余一个数之后存取到相应的位置,如果
余数相同则直接链到次索引上),各种快(遍历,删除,修改);
LinkedHashSet
TreeSet:底层实现是二叉树(插入:左小右大,排序:先左节点再根节点最后右节点)
特点:有序,唯一,生成此容器对象的时候必须传入一个比较器的
对象(这个对象可以直接写成内部类的方式生成)
Treetable
Map接口
1.HashMap<key,value> 键值对的体现,只能通过key找到value,
三种方式可以bianli此容器
1.Set<key> set=map.keySet();//拿到所有的key,并存储到Set容器li面
2.Collection<Object obj> objs=map.values();//拿到所有的values值
3.Set<Entry<key,value>> set=list.entrySet();//拿到所有的条目(key和value组成);
Hashtable<key,value>:key和value都不可以为null,上面的key和value都可以为null
2.TreeMap
比较器:比较对象的大小
外部比较器:Comparator int Compare(Object obj1,Object obj2)
内部比较器:Comparableint CompareTo(Object obj)
迭代器:(专为容器而生(除了map),且只能有容器本身获取迭代器)
1.Iterator: 只能遍历容器里面的元素,和删除里面的元素
2.ListIterator:不仅能遍历删除元素,而且能删除,修改,添加,功能更加强大
备注:1.执行完.hasNext()方法之后,游标指向下一个元素
2.在删除元素的时候,只能是先执行.next()方法之后,才能删除当前的元素
Collection接口
1.List接口(有序,不唯一)//备注:这里的有序是插入的顺序
ArrayList:底层实现是数组
LinkedList:底层实现是链表
单向列表:每个元素只有一个引用,都是指向后面的节点
双向列表:每个元素有两个引用,一个指向前一个节点,一个指向后一个节点
Vector:线程安全的,jdk1.0版本后就有的,上面两个线程不安全,但是高效
2.Set接口(无序,唯一)
HashSet:底层实现是数组+链表(算法是hashcode码取余一个数之后存取到相应的位置,如果
余数相同则直接链到次索引上),各种快(遍历,删除,修改);
LinkedHashSet
TreeSet:底层实现是二叉树(插入:左小右大,排序:先左节点再根节点最后右节点)
特点:有序,唯一,生成此容器对象的时候必须传入一个比较器的
对象(这个对象可以直接写成内部类的方式生成)
Treetable
Map接口
1.HashMap<key,value> 键值对的体现,只能通过key找到value,
三种方式可以bianli此容器
1.Set<key> set=map.keySet();//拿到所有的key,并存储到Set容器li面
2.Collection<Object obj> objs=map.values();//拿到所有的values值
3.Set<Entry<key,value>> set=list.entrySet();//拿到所有的条目(key和value组成);
Hashtable<key,value>:key和value都不可以为null,上面的key和value都可以为null
2.TreeMap
比较器:比较对象的大小
外部比较器:Comparator int Compare(Object obj1,Object obj2)
内部比较器:Comparableint CompareTo(Object obj)
迭代器:(专为容器而生(除了map),且只能有容器本身获取迭代器)
1.Iterator: 只能遍历容器里面的元素,和删除里面的元素
2.ListIterator:不仅能遍历删除元素,而且能删除,修改,添加,功能更加强大
备注:1.执行完.hasNext()方法之后,游标指向下一个元素
2.在删除元素的时候,只能是先执行.next()方法之后,才能删除当前的元素