欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

泛型

程序员文章站 2022-04-18 14:33:22
...

泛型 < 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。