Day2-java泛型与集合

发布时间 2023-05-27 14:16:12作者: gm学习日记
 
  1. ArrayList类的使用
  2. Set接口及实现类的使用  了解
  3. 对象顺序,Comparable接口及其使用
  4. Queue接口和实现类的使用  了解
  5. Map接口及实现类的使用
  6. Collections类的实用方法操作List对象
  7. StreamAPI的使用  了解

泛型类型 

取出和输入不用强制类型转换

泛型是带一个或多个类型参数的类或接口

Node<T> node = new Node<T>();
或者
Node<T> node = new Node<>();

泛型类型的使用与方法调用类似,方法调用需向方法传递参数,使用泛型需传递一个类型参数,即用某个具体的类型替换T。

常用的类型参数名:

E(元素)、K(键)、N(数字)、T(类型)、V(值)。

泛型可能具有多个类型参数,但在类和接口的声明中,每个参数名必须是唯一的。例

 

public interface Entry<K,V>{
    public K getKey();
    public V getValue();
}

Pair<Integer,String> p1 = new Pair<>(20,"twenty");
Pair<String,String> p2 = new Pair<>("China","Beijing");

 

泛型方法

泛型方法是带类型参数的方法,类的成员方法和构造方法都可以定义为泛型方法。

泛型方法类型参数的作用域仅限于声明的方法和构造方法内。

可为静态也可为非静态。

public static <T> void swap(T[] array,int i,int j){
}

通配符(?)的使用

public static void printList(List<?> list){
}

表示该方法可接受的元素是任何类型的List对象

有界类型参数

限制传递类型参数的类型种类。

有界类型分为上界和下界,上界用extends指定,下届用super指定.

例:声明上(下)界类型参数,使用?,后跟extends(super)关键字,然后是上(下)界类型

List<? extends Number> numberList

 

集合框架

集合是集中存放一组对象的一个对象。相当于一个容器,提供保存,获取和操作其他元素的方法。

java集合框架由Collection和Map构成,Collection对象用于存放一组对象,Map对象用于存放一组“关键字/值”的对象。

 Collection接口的集合操作常用方法可分为基本操作,批量操作,数组操作,流操作。

基本操作:有添加元素,删除指定元素,返回集合中元素的个数,返回集合的迭代器对象。

  • add(E e):向集合中添加元素e;
  • remove(Object o):从集合中删除指定的元素o;
  • contains(Object o):返回集合中是否包含指定的元素o;
  • size():返回集合中包含的元素个数;
  • iterator():返回包含所有元素的迭代器对象

批量操作:

  • addAll(Collection<? extends E> c):将集合c中的所有元素添加到当前集合中;
  • removeAll(Collection<?>c):从当前集合中删除c中的所有元素;
  • containsAll(Collection<?>c):返回当前集合是否包含c中的所有元素;
  • retainAll(Collection<?>c):在当前集合中只保留指定集合c中的元素,其他元素删除;
  • clear():将集合清空

数组操作:将集合元素转换成数组元素

  • Object[ ] toArray():返回包含集合中所有元素的对象数组

List接口及实现类

List接口是Collection的子接口,实现一种线性表的数据结构,存放在List中的元素都从下标0开始,可包含重复元素。

List的操作:既继承Collection的方法,还实现可定位访问、查找、迭代、返回子线性表

  • get(int index):返回指定下标处的元素;
  • set(int index,E element):修改指定下标处的元素;
  • add(int index,E element):将指定元素插入到指定下标处;
  • remove(int index):删除指定下标处的元素;
  • iterator():获得表的遍历器;
  • indexOf(Object o):查找指定对象第一次出现的位置;
  • lastIndexOf(Object o):查找指定对象最后一次出现的位置;
  • List<E>subList(int from,int to):返回从from到to元素的一个子线性表;

List虽然继承Collection,但有的操作不同,如:remove():从线性表中删除指定首次出现的元素

                     add()和addAll():将元素插入到线性表的末尾

ArrayList类

元素可以动态地增加和删除。