zoukankan      html  css  js  c++  java
  • JAVA的高级特性——集合框架

    为什么使用集合框架

               如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象——可以使用Java集合框架

    Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中

    集合的框架包含的内容

      

     Collection接口存储一组不唯一,无序的对象
    List接口存储一组不唯一,有序的(插入顺序)的对象
    Set接口存出一组1唯一,无序的对象
    Map接口存储一组键值对象,提供key到value的映射

    Set接口
    Set接口存储一组唯一,无序的对象
    HashSet是Set接口常用的实现类
    Set中存放对象的引用
    集合框架有何好处
    ①可改变长度的数组
    ②可以通过size()方法获取非null对象个数
    ③插入add()、删除remove()、遍历、查询对象get(index)时,减少代码量

    ArrayList和LinkedList区别

      1:存储方式

        ①ArrayList:长度可变的数组,存储空间连续

        ②LinkedList集合:链表式结构存储

      2:执行效率

        ①ArrayList:遍历和随机访问效率高

        ②LinkedList集合:插入和删除效率高

    List常用方法

     LinkedList的特殊方法

    Map接口

    Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作

    最常用的实现类是HashMap

    迭代器Iterator

      通过迭代器Iterator实现遍历获取Iterator :Collection 接口的iterator()方法

      案例


    @Test
     public void test04(){
         Dog ouou = new Dog("ouou","雪纳瑞");
         Dog yaya = new Dog("yaya","拉布拉多");
         Dog feifei = new Dog("feifei","哈士奇");
         Dog meimei = new Dog("meimei","吉娃娃");
      
         Map map = new HashMap();
         map.put(ouou.getName(), ouou);
         map.put(yaya.getName(), yaya);
         map.put(feifei.getName(), feifei);
         map.put(meimei.getName(), meimei);
       
         Set keySet = map.keySet();
         Iterator it = keySet.iterator();
         while(it.hasNext()){
         String key = (String )it.next();
         Dog  dog =(Dog) map.get(key);
         System.out.println(dog.getName()+" "+dog.getStrain());
       }


    增强for循环

      语法:for(元素类型t  元素变量x : 数组或集合对象){
             引用了x的java语句
             } 

    案例:



     @Test
     public void test04(){
         Dog ouou = new Dog("ouou","雪纳瑞");
       Dog yaya = new Dog("yaya","拉布拉多");
       Dog feifei = new Dog("feifei","哈士奇");
       Dog meimei = new Dog("meimei","吉娃娃");
      
       Map map = new HashMap();
       map.put(ouou.getName(), ouou);
       map.put(yaya.getName(), yaya);
       map.put(feifei.getName(), feifei);
       map.put(meimei.getName(), meimei);
       
       Set keySet = map.keySet();
      
       System.out.println("***********");
       for( Object  key :  keySet){    
        Dog  dog =(Dog) map.get(key);
        System.out.println(dog.getName()+" "+dog.getStrain());
       }
      
     }


  • 相关阅读:
    4星|《门口的野蛮人2》:美国宝万之争专业户KKR公司的疯狂借债收购史
    3星|《多样性红利》:10年旧书,《群体智慧》的注解版,习题集性质
    4星|《财经》2018年第26期:全国流感疫苗供应不足
    互联网行业的左其盛好评书21本
    华为相关6本书,都不值得读
    3.5星|《产品觉醒》:针对互联网商业和产品的评论与思考,有实践有洞察
    3星|埃森哲《机器与人》:基于人工智能新闻甚至宣传稿的畅想与分析
    3星|《华为终端战略》:华为手机大事记,企业宣传稿风格
    2.5星|《极简企业史》:资料汇编,一大半内容是相关图书简介
    AspNet Core 发布到Linux系统和发布IIS 注意项
  • 原文地址:https://www.cnblogs.com/li-ding-yong/p/13054443.html
Copyright © 2011-2022 走看看