day10Colection/增强for循环/泛型/List接口

java.util.Collection 集合层次的根接口
    常用实现类
             ArrayList
    方法
            - public boolean add(E e):  把给定的对象添加到当前集合中 。
            - public void clear() :清空集合中所有的元素。
            - public boolean remove(E e): 把给定的对象在当前集合中删除。
            - public boolean contains(Object obj): 判断当前集合中是否包含给定的对象。
            - public boolean isEmpty(): 判断当前集合是否为空。
            - public int size(): 返回集合中元素的个数。
            - public Object[] toArray(): 把集合中的元素,存储到数组中
        //多态创建对象  不能使用实现类特有功能
        Collection<String> c = new ArrayList<>();
        c.add("柳岩");
    集合和迭代器
          Collection
        public abstract Iterator<E> iterator()
            获取迭代器  方法是抽象方法 但是任意一个Collection的实现类都会
                                                       重写此方法 方法的返回值类型是Iterator接口 一定会返回接口的实现类对象
        Iterator接口
                boolean hasNext()  判断是否有元素
                E next()   获取元素
            //获取集合专属迭代器
        Iterator<String> it =  c.iterator();
                ConcurrentModificationException
          并发修改异常
                    当迭代器在迭代的同时 集合修改了自身的长度 就会抛出此异常
            while(it.hasNext()){
            String name = it.next();
            System.out.println(name);
        }

增强For循环
    JDK1.5
    作用
         用来遍历数组 或 集合
    原理
         一个增强for循环 底层使用的就是一个迭
    代器
         注意:迭代的同时 不能修改集合的长度
    格式
         for(数据类型 变量名:集合或数组){

         }
        //增强for
   for(Person thisPerson : list){
        System.out.println(thisPerson.getName()+" "+thisPerson.getAge());
         //增强for循环
        for(int num : arr){
            System.out.println(num);
        }

泛型
    定义泛型
        泛型可以定义在 接口 类 方法上 将数据类型作为参数传递
            泛型类
         public class 类名<泛型变量>{


         }
         创建对象时 确定泛型的数据类型
                public class MyClass<QQ> {

    private QQ name;
            泛型方法
         public <泛型变量>返回值类型 方法名(形参){

         }
       调用方法 传递参数时 确定泛型的数据类型
                public <WX>void method(WX wx,QQ qq){
        System.out.println(wx.getClass());
        System.out.println(qq.getClass());
    }
                    //调用方法确定wx的类型为Integer
        mc.method(10,"");
//调用方法确定wx的类型为String
        mc.method("","");
            泛型接口
          public interface 接口名<泛型变量>

        1.定义实现类时 直接确定泛型的数据类型
        2.定义实现类时 不确定泛型的数据类型 实现类也是泛型类 创建实现类对象时 确定类型
                public interface MyInterface<K,V> {

    public abstract  void method(K key,V value);
}
                public interface MyInterface<Integer,String> 
        泛型的通配符
           ?
            //定义一个方法 可以遍历这两个集合
    public static void show(ArrayList<?> list){
         for(Object obj : list){
             System.out.println(obj);
        好处
        可以预先使用未知的类型
    使用泛型
        我们创建集合 指定集合中元素的类型 就是在使用泛型
        使用泛型的好处
            1.明确知道集合中存储元素的类型
            2.将运行时异常 提前到编译时报错
            3.避免强制类型转换的麻烦

list接口
    特点
        有序 有索引 元素可重复
                判断元素相同的依据是对象的equals方法
    方法
        - public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。
        - public E get(int index):返回集合中指定位置的元素。
        - public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。
        - public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
    常用的实现类
        ArrayList
              底层数据结构是数组
              查询快 增删慢
        LinkedList
             底层数据结构是链表
              查询慢 增删快

2.都重要,需要着重记住

3.充实,开心

4.Colections,ArrayList,Set<>,总结
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值