Collection 和 泛型

Collection

collection 集合 ;
collection 是所有集合的父类,object是引用类型的 父类
什么是集合;集合相当于一个容器 , 它可以装许多引用。
数组;它的长度是有限的,不可以进行改变。 集合;长度是可以进行改变。
在Java中有许多,像这样集合的类,每个集合类,对元素的存储都采用了不同的数据结构。
有些数据结构会导致,增删快,查询慢 ,有些数据结构会导致查询快 ,增删慢
数据结构;
数组;Arrraylist
列表;Linkedlist
哈希表;hashtable
栈(stack);
队列;
红黑树;
……
集合体系
这里写图片描述
collection集合常用的方法,
1 add增加
这里写图片描述
2,clear清空当前所有集合
这里写图片描述
3. remove通过 删除当前某个元素
这里写图片描述
4 contians判断集合是否存在集合当中。
这里写图片描述
5 size 判断当前集合的长度
这里写图片描述
6 object[] toArray 将字符串转换成 数组
这里写图片描述
7 isempty 查看当前集合是否为空
这里写图片描述

Iterator迭代器

iterator;是集合Java中的一员,collection 与map 都是 进行存储元素的,而iterator 是用于迭代的即所谓的遍历 , 主要用于collection 集合迭代的,
public Iterator ierator ()这种方法 进行collection 进行 迭代的。
迭代;即collection 集合进行遍历的,在遍历之前先要判断集合中有没有元素 ,如果有就行下一个元素进行遍历, 直到判断出整个集合没有元素为止。也就完成整个集合的遍历。
在 iterator接口中有两个方法
1 public e next 返回迭代的下一个元素
2 pbulic boolean hasnext () 遍历元素 如果有就返回true ;
这里写图片描述
这里是iterator迭代器 的原理,先调取集合,进行遍历,用hasnext进行判断,再用next进行下一个,
这里写图片描述

增强for

增强for也称之为for each 循环 是在jdk 1.5之后 出现的,他的底层是利用iterator迭代器的
这里写图片描述

泛型

泛型概念;也是在jdk1.5之后定义出泛型语法的。 就是在类和数组中 可以用“E”或者其他字母来代替引用类型。
泛型的好处;让编译器替我们进行监督,我们只能添加这个类型的对象,如果添加别的元素会进行报错。
这里写图片描述

自定义泛型类;
这里写图片描述

这里写图片描述

含有泛型的方法;
这里写图片描述

还有泛型接口在这里就不写了。想要看的话 可以@ 也可以在下面评论

泛型通配符

1).需求:定义一个方法,方法的形参:可以接收具有任何泛型的集合
        <?> : 表示可以接收具有任何泛型的集合;
        class Demo{
            public static void main(String[] args){
                ArrayList<String> list1 = new ArrayList<>();
                ArrayList<Integer> list2 = new ArrayList<>();
                ArrayList<Student> list3 = new ArrayList<>();
                p1(list1);//OK的
                p1(list2);//OK的
                p1(list3);//OK的
                p1("呵呵");//错误
            }
            public static void p1(ArrayList<?> list){
            }
        }

    2).需求:class Person{}
       class Student extends Person{}
       class JavaStudent extends Student{}

       请定义方法,参数可以接收具有:Student或者JavaStudent泛型的集合:上限
    class Demo{
        public static void main(String[] args){
            ArrayList<Person> list1 = new ArrayList<>();
            ArrayList<Student> list2 = new ArrayList<>();
            ArrayList<JavaStudent> list3 = new ArrayList<>();
            p1(list1);//错误
            p1(list2);//OK的
            p1(list3);//OK的
        }
        public static void p1(ArrayList<? extends Student> list){
        }
    }
3).需求:定义方法,参数可以接收具有:Person或者Student泛型的集合:下限
    class Demo{
        public static void main(String[] args){
            ArrayList<Person> list1 = new ArrayList<>();
            ArrayList<Student> list2 = new ArrayList<>();
            ArrayList<JavaStudent> list3 = new ArrayList<>();
            p1(list1);//OK的
            p1(list2);//OK的
            p1(list3);//错误
        }
        public static void p1(ArrayList<? super Student> list){
        }
    }

猜你喜欢

转载自blog.csdn.net/weixin_42943720/article/details/82534384