泛型
泛型 < E > 括号里代表数据类型,只能把本类型的数据传到集合里
泛型的好处:
1.将运行时的错误提前到了编译阶段;2.消除警告线(可能有问题);3.不用进行强制类型转换;
ArrayList<String> list = new ArrayList<Student>();
//两个括号里都要写,当然不这样也可以,不过不建议
泛型的使用
1.先创建一个类;2.声明此类泛型
public class Demo<T>{
private T t;
public T getT(){
return T;//返回T
}
public void setT(T t){
this.t = t;
}
//T是数据类型
}
泛型方法 :类不是泛型,方法是泛型
泛型接口
声明接口,添加泛型
实现类有两种选择 :1.实现类知道将来用什么类型,可以在接口后直接添加泛型
泛型通配符 ? ?extends E ?super E
? 可以匹配任意类型 ,相当于Object
? extends E 向下限定,只能匹配E和其子类
?super E 想上限定,只能匹配E和其父类
增强for循环
for(初始变量; 条件语句; 控制语句){循环体}
for(数据类型 变量 : 集合(数组)){循环体},底层是迭代器;要指定类型,可能因为数据不同一出现错误;不能修改,会出现并发异常。
集合嵌套
用集合来存储集合对象
set
一个不包含重复元素的 collection。更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。
无序
hashset 构造一个新的空 set,其底层 HashMap 实例的默认初始容量是 16,加载因子是 0.75。
public class HashSetextends AbstractSetimplements Set, Cloneable, Serializable
hashmap
接口 Map <k,v>
类型参数
K 此映射所维护的键的类型 Key,建议使用String(不重复)
V 映射值得类型 Value
HashMap
public HashMap() 构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。
功能方法
1.增
public V put(K key, V value)在此映射中关联指定值与指定键。如果该映射以前包含了一个该键的映射关系,则旧值被替换。
putAll
public void putAll(Map<? extends K,? extends V> m)
2.删
public V remove(Object key)从此映射中移除指定键的映射关系(如果存在)。
clear()
3.改
用put()重新赋值
4.查
public V get(Object key) 返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null。
public Set keySet()
public Collection values() 没有顺序
5.判断
public boolean containsKey (Object key)如果此映射包含对于指定键的映射关系,则返回 true。
public boolean containsValue(Object value)如果此映射将一个或多个键映射到指定值,则返回 true。
上一篇: 泛型
下一篇: 原生JS实现登陆注册的验证