zoukankan      html  css  js  c++  java
  • Java day 13

    1、集合的体系结构:Collection、List、ArrayList

     (1)原因:不同的数据结构(数据的组织,存储方式),Java提供了不同的集合,但是不同的集合功能是相似的,不断的向上提取,并将共性提取出来;
     (2)学习方法:从最顶层开始学习,最顶层包含了所有的共性;
     (3)使用方法:使用最底层,最底层是具体的实现
    

    2、集合的遍历方式:

     (1)toArray():可以把集合转换成数组,然后遍历数组;
     (2)iterator():返回一个迭代器对象,通过迭代器对象来迭代集合(遍历集合)
            a、E next():返回下一个元素;
            b、boolean hasNext():判断是否有元素可以获取,如果没有元素可以获取,则会出现NoSuchElementException异常
        注意:迭代器是依赖于集合的,相当于集合的一个副本,当迭代器在操作的时候,如果发现和集合不一样,则会出现并发修改异常
        解决方案:
           a、不使用迭代器;
           b、在迭代器进行遍历的时候使用迭代器来进行修改
    

    3、泛型:Java为了解决类型转换异常而提供的一种机制(使用集合存储自定义对象并遍历),把明确数据类型的工作提前到了编译时期

     (1)优点:
          a、避免了类型转换的问题;
          b、减少黄色警告线;
          c、简化代码的书写
     (2)使用场景:看到<E>
    

    4、foreach:增强for循环,一般用于遍历集合或者数组

         格式:
           for(元素的类型变量:集合或者数组对象){
                 可以直接使用变量;
           }
        注意:在增强for循环中不能修改集合,否则会出现并发修改异常   
         public interface Interable<I>:实现这个接口允许对象成为"foreach"语句的目标
    

    5、数组的特点:

     (1)数组的长度一旦定义则不可改变;
     (2)数组中的元素都有整数索引;
     (3)数组只能存储同一类型的元素;
     (4)数组既可以存储基本数据类型,也可以存储  引用数据类型;
     (5)数组查找快,增删慢
       获取元素:通过索引获取
       在指定元素后添加元素:先创建一个新的数组,长度是原先数组长度+1,遍历原先数组,并插入到新的数组中,当碰到该指定元素时则在其后添加新元素,其余的放在新元素后面
    

    6、链表:由链子连接起来的一堆结点

       结点:地址值,值,下一个结点地址值
       获取元素:遍历链表
       在指定结点后添加新结点:把指定结点的下一个地址值修改为新结点的地址值,把新结点的下一个地址值改为原链表的下一个地址值
       特点:查询慢,增删快
    

    7、List的常用子类:

     (1)ArrayList():数据结构是数组,查询快,增删慢;查询多,增删少或者不知道使用什么的时候使用
     (2)LinkedList():数据结构是链表,查询慢,增删快;查询少,增删多的时候使用
         LinkedList的特有功能:
          a、void addFirst(E e):将元素添加到索引为0的位置
          b、void addLast(E e):将元素添加到索引为size()-1的位置
          c、E getFirst():获取索引为0的元素
          d、E getFirst():获取索引为size()-1的元素
          e、E removeFirst():删除索引为0的元素
           f、E removeLast():删除索引为size()-1的元素
        List的相关操作:
          a、 void add(int index,E element):在指定索引位置添加指定元素
          b、 E get(int index):根据索引返回元素
          c、E remove(int index):删除指定元素并返回
          d、E set(int index,Eelement):将指定索引位置的元素替换为指定元素,并将原先的元素返回
  • 相关阅读:
    IIS6的http.ini伪静态规则转换为IIS7伪静态规则的方法
    php ecshop 二级域名切换跳转时session不同步,解决session无法共享同步导致无法登陆的问题
    ECSHOP登录自动退出问题解决
    aspcms 分享到微信显示找不到模版的解决办法!
    ASPCMS内容调用去掉html标签
    凡是出现了问题,都是有原因存在的。
    spring下载地址
    比较好的资源
    xp系统下,安装github时,需要下载的补丁
    联合更新语句,根据photo中的数量更新相册表Num列
  • 原文地址:https://www.cnblogs.com/cqxljj/p/10277850.html
Copyright © 2011-2022 走看看