集合
2020-09-04 10:22:23 0 举报
AI智能生成
Java的集合
作者其他创作
大纲/内容
泛型
泛型的使用: <具体数据类型>
ArrayList<String> list = new ArrayList<String>();
泛型使用注意事项
前后的尖括号中具体数据类型必须一致
泛型只能是引用数据类型
泛型的好处
泛型类
泛型方法
泛型方法分为两种
成员方法
静态方法
public static <T> T show(){ T t = null; return t; }
泛型接口
泛型接口的实现类有两种
实现类不是泛型类
public class 普通类 implements 泛型接口<具体数据类型>{ }
实现类还是一个泛型类
public class 泛型类<T> implements 泛型接口<T>{ }
必须泛型类中符号和泛型接口中符号一致
泛型的通配符: 本质使用通配符的目的就是为确定具体数据类型的范围
?
任意数据类型
? super T
? extends T
子类类型或者本类 (∞ 本类]
迭代器 Iterator
hasNext()
判断是否有下一给元素
应用:将该方法放入到while()条件中
next()
指针下移
结构图
Collection(接口)
实现了Iterable,所以可以使用迭代器和for each进行遍历
遍历方式:
Iterator<E> iterator() 转换为迭代器
注意:遍历的时候一定要保证每次循环 next() 方法只执行一次
增强for循环
Set(接口) 不可以重复 ,没有索引
HashSet
特点:无序 通过hash桶存储对象,要求被存储的对象所属类必须重写hashCode和equals方法
LinkedHashSet
特点: 迭代顺序和存放顺序一致 通过hash桶存储对象,要求被存储的对象所属类必须重写hashCode和equals方法
TreeSet
特点:自然排序
存储对象的前提
对象所属类实现Comparable,重写CompareTo(obj)方法
在TreeSet构造方法中传入实现了Compartor接口的实例,重写Compare(obj1,obj2),一般情况下可将该类写成 匿名内部类
List(接口) 可以重复 有序 有索引
ArrayList
特点:底层是数组,方便查询,但不方便删除,插入操作
Vector
特点:和ArrayList类似,但是线程安全,效率低
同步
LinkedList
特点:双向链表格式,方便删除,插入操作,查询效率比较低
因为有 public E get(int index) 方法,所以 在Collection遍历方式的基础上,多了一种根据索引遍历的方式,使用for循环遍历
特殊点:因为有 索引,因此有 get(int index) 通过索引获取元素的方法
Map(接口)
特点:有键有值,键不可以重复,值可以重复
遍历的方式:
通过keySet()将键放入到集合中,通过每次遍历的键获取值
比较灵活
通过Values() 将所有的值放入到集合中,进行遍历
只能遍历值,不能遍历键
通过EntrySet() 将 键值对放入到集合中,遍历
返回Set<Map.Entry>
K getKey()返回与此项对应的键
V getValue()返回与此项对应的值
存放的是键值对
HashMap
无序迭代,允许null值,null键
LinkedHashMap
迭代顺序和存放顺序一致
Hashtable
无序迭代,不允许null键,不允许null值,线程安全
集合
0 条评论
回复 删除
下一页