学习JAVA的第十四天(基础)

目录

Collection集合

迭代器遍历

 增强for遍历

  Lambda表达式遍历       

List集合           

遍历

数据结构

栈 

队列

数组

链表 


                          前言: 学习JAVA的第十三天

Collection集合

Collection的遍历方式:

                                      迭代器(不依赖索引)遍历 

                                      增强for遍历

                                        Lambda表达式遍历

迭代器遍历

Collection集合获取迭代器

Iterator<E> iterator() 返回迭代器对象,默认指向集合的0索引

Iterator中常见的方法

方法名称说明
 boolean     hasNext()判断当前位置是否有元素,有元素返回true,无元素返回false
E next()获取当前位置的元素,并将迭代器对象移向下一个位置

注意事项:

                                 循环中只能使用一次next()

                                迭代器遍历完成,指针不会复位

                                迭代器遍历时,不能使用集合的方法删除和添加

测试类 

 public static void main(String[] args) {
        //创建集合添加对象
        Collection<String> coll = new ArrayList<>();
        coll.add("aa");
        coll.add("bb");
        coll.add("cc");

        //获取迭代器对象
        Iterator<String> it =  coll.iterator();
        //循环获取集合中每个元素
        while(it.hasNext()){
            String str = it.next();
            System.out.print(str+" ");//aa bb cc 
        }
    }

 增强for遍历

                                 增强for遍历的底层就是迭代器,不过是为了简化迭代器书写的

                                单列集合和数组才能使用增强for遍历

测试类

 public static void main(String[] args) {
        //创建集合
        Collection<String> coll =  new ArrayList<>();
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");

        //增强for遍历
        for(String s : coll) {
            System.out.print(s); //aaabbbccc
        }
    }

  Lambda表达式遍历       

                        提供一个更简单、更直接的遍历集合的方式     

方法使用 : 

测试类:

 

    public static void main(String[] args) {
        //创建集合
        Collection<String> coll =  new ArrayList<>();
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");

        //Lambda表达式
        coll.forEach(s -> System.out.print(s)); //aaabbbccc
    }

List集合           

 特点:

                        有序 :存和取的顺序一样

                        有索引 : 可以通过索引操作元素

                        可重复 : 存储的元素可以重复

方法:

                List集合继承于Collection集合,但List有自己特有的方法

方法说明
add(int index ,E element)在集合的指定位置插入指定的元素
E  remove(int index)删除指定索引的元素,返回删除的元素
E  set(int index,E element )修改指定索引的元素,返回修改的元素
E  get(int index)返回指定索引的元素

测试类

 

 public static void main(String[] args) {
        //创建集合对象
        List<String>  list = new ArrayList<>();

        //添加元素
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

        System.out.print(list+" ");// [aaa, bbb, ccc]

        //在指定的索引添加元素
        list.add(1,"nnn");
        System.out.print(list+" ");//[aaa, nnn, bbb, ccc]

        //删除指定索引的元素
        System.out.println(list.remove(1));//nnn
        System.out.print(list+" ");//[aaa, bbb, ccc]

        //修改指定索引的元素
        System.out.println(list.set(2, "ddd"));//ccc
        System.out.print(list+" ");//[aaa, bbb, ddd]

        //通过获取集合的元素
        System.out.println(list.get(2));//ddd

    }

遍历

                                        迭代器遍历

                                        列表迭代器遍历

                                        Lambda表达式遍历

                                        for循环遍历

                                        增强for循环遍历

测试类:

public static void main(String[] args) {
        //创建对象
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

        //迭代器  可以用迭代器本身的方法增加元素 it.add()
        Iterator<String> it = list.iterator();
        while (it.hasNext()){
            System.out.print(it.next());//aaabbbccc
        }
        //列表迭代器  遍历时可以添加元素
        ListIterator<String> listIt = list.listIterator();
        while(listIt.hasNext()){
            System.out.println(listIt.next());//aaabbbccc
        }



        //增强for
        for (String s : list) {
            System.out.print(s);//aaabbbccc
        }
        //for循环
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i));//aaabbbccc
        }
        //Lambda表达式遍历
        list.forEach(s -> System.out.print(s));//aaabbbccc
    }

数据结构

                        计算机存储组织数据的方式。

常见数据结构

  • 队列
  • 数组
  • 链表
  • 二叉树
  • 二叉查找树
  • 平衡查找树
  • 红黑树

栈 

                        特点:后进先出,先进后出

过程 :

                        数据进入栈模型的过程:进栈(压栈)

                        数据离开栈模型的过程:出栈(弹栈)

队列

                        特点:先进先出、后进后出

过程:

                        数据从后端进入队列模型的过程:入队列

                        数据从前端离开队列模型的过程:出队列

数组

                        特点:元素在内存中是连续的

                                    查询速度快

                                    删除和添加效率相对慢

链表 

                         特点:列表中每个元素叫做结点 (独立的对象)    

                                     查询速度慢 

                                     删除和添加效率相对快                              

 过程:

          

                                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值