• 集合(1)


    第十四天:集合框架

    1. 为什么要出现这么多的容器呢?

    因为每一个容器对数据的存储方式(数据结构)都不相同,

    1. 为什么出现集合类?

    面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最长用的一种方式。

    1. 数组和集合类都是容器,有什么不同?

    数组的长度是固定的,容器的长度是可变的。

    数组中可以存储基本数据类型,集合只能存储对象

    1. 集合类的特点

    集合只用于存储对象,集合的长度是可变的,集合可以存储不同类型的对象。

    1. Collection 接口的几个子接口

    List(列表):可以存放重复的元素,元素存取的有序的

    Set(集):不可以存放重复的元素,元素存取是无序的

    Vector:线程安全,但速度慢,已被arraylist取代

    Arraylist:线程不安全,查询速度快

    Linkiedlist:链表结构,增删速度快。

    Hashset :线程不安全,存取速度快。

            思考:他是如何保证元素的唯一性的呢?

                          通过equals方法和hashcode方法来保证元素的唯一性

    TreeSet:线程不安全,可以对set集合中的元素进行排序

            思考:他的排序是如何进行的?

    通过compareTo或者compare 方法中的来保证元素的唯一性。元素是以二叉树的形式存 放的。

           Hashtable:线程安全,速度慢,不允许存放null值,已被hashmap取代

           Treemap:对键进行排序,排序原理与treeset相同

    1. 取出list集合中的元素的方式:

    Get(int index):通过脚标获取元素

    Iterator():通过迭代的方法获取迭代对象

    1. 迭代

    迭代式取出集合中元素的一种方式

    因为collection中有iterator方法,所以每一个子类集合对象都具备迭代器。

    用法:

    ArrayList al= new ArrayList();

               al.add("name12");

               al.add("name12");

               al.add("name12");

               al.add("name12");

               al.add("name12");

              

               //使用方法1

               for(Iterator iter =al.iterator();iter.hasNext();)

               {

                     System.out.print(iter.next()+"**");

               }

               System.out.println();

              

               //使用方法二

               Iterator iter = al.iterator();        

               while(iter.hasNext())

               {

                     System.out.print(iter.next());

          }

    1. 迭代注意事项

    迭代器在collection接口中是通用的,他替代了vector类中的Enumeration(枚举)。

    迭代器的next方法是自动向下取元素,要避免出现NosuchElementException

    迭代器的next方法返回值类型是object,所以要记得类型转换

    1. 思考:为什么next方法的返回值是Object类型呢?
    2. 泛型的特点

    提高了程序的安全性

    将运行期遇到的问题转移到了编译期

    省去了类型强转的麻烦

    泛型类的出现优化了程序设计

    1. Map与collection在集合框架中属于并列存在的
    2. Map存储的是键值对
    3. Map存储元素使用put方法,collection使用add方法
    4. Map集合没有直接取出元素的方法,而是先转成set集合,再通过迭代获取元素
    5. Map集合中键要保证唯一性
    6. 集合框架中的工具类

    Collection:

    对集合进行查找

    取出集合中的最大值,最小值

    对list集合进行排序

           Arrays

                  将数组转成list集合

                  对数组进行排序

                  对数组进行二分查找

    1. Collection在jdk1.5后现的父接口iterator就是提供了这个for语句

    格式:

    For(数据类型 变量名:数组或集合)

    {

            执行语句;

    }

    简化了对数组,集合的遍历

    1. 函数的另一种表现形式:

    返回值类型 函数名(参数类型… 形式参数)

    {

                  执行语句;

    }

    其实接收的就是一个数组,可以指定实际参数的个数

    1.  
  • 相关阅读:
    ubuntu 安装chrome浏览器
    ubuntu下Xmodmap映射Esc和Ctrl_L
    ubuntu 设置主屏和副屏
    maven 第一次运行报错
    Intellij Idea 配置并发布tomcat项目
    Nginx跨域设置
    Inotify+rsync实现实时数据同步
    Ubuntu-18.04设置开机启动脚本
    CentOS开机自启动/etc/rc.local不执行的解决办法
    ELK之使用kafka作为消息队列收集日志
  • 原文地址:https://www.cnblogs.com/excellencesy/p/8504953.html
Copyright © 2020-2023  润新知