zoukankan      html  css  js  c++  java
  • 黑马程序员——java集合框架之List,Set

    集合框架
      1.数组与集合的不同
        数组长度是固定的,集合长度是可变的
        数组中可以存储基本数据类型,集合只存储对象
        集合可以存储不同类型的对象
          
      2.java集合类中有两个顶层接口Collection和Map,下面是对Collection的一些总结:

         集合中常用方法:
         add方法的参数类型为Object,以便于接受任意类型的对象
         集合中存储的都是对象的引用(或者说地址)

         迭代器是集合取出元素的方式,此方法是定义在集合的内部,这样取出方式就可以直接访问集合内部的元素
         而每一个容器的数据结构不同,所以取出的动作细节也不一样,但是都有共性内容:判断和取出
         那么可以将共性抽取

         这些内部类都符合一个规则,该规则是Iterator.
         通过一个对对外提供的方法iterator()来获取集合的取出对象      
         
         方法:add(Object obj)  添加元素
               remove(Object obj)删除元素
               contains(Object obj)判断元素是否存在
               isEmpty()判断集合是否为空 
               size()获取集合长度
               retainAll()取交集,只保留于指定集合中元素相同的元素
               iterator()  获取迭代器,用于取出集合中的元素

       3. Collection下面的子接口:(List和Set)

    • List:元素师有序的,元素可以重复,因为该集合体系有索引

           LinkedList   链表数据结构
           HashSet   底层数据结构是哈希表

        HashSet是如何保证元素唯一性的呢?
         是通过元素的两个方法hashCode 和equals来完成
         如果元素的HashCode 值相同,才会判断equals是否为true 
         如果HashCode值不相同,才会进行equals
        hashCode()和equals()是集合内部顶层自己调用的
        判断元素是否存在,以及删除操,以来的方法是元素的hashCode和equals()方法。
        一般开发用到HashSet时,一般都会复写hashCode()和equals()方法
       
       (2)---TreeSet  底层数据结构是二叉树
                   保证元素唯一性的依据:compareTo()方法的返回值是否为0
         
          TreeSet排顺序的第一种方式:让元素自身具备比较性,元素要实现Comparator接口,覆盖compareTo()方法
          这种方式也成为元素的自然顺序,或者叫做默认顺序
         
          TeeeSet的第二种排序方式:当元素自身不具备比较性时,或者具备的比较性不是所需要的
          这时就需要让集合自身具备比较性
          自己和初始化时,就赋予比较方式。
            即定义一个比较器,将比较器对象作为参数传递给TreeSet集合的构造函数

          当两种排序方式都存在时,以比较器为主,定义一个类实现Comparator接口,覆盖compare()方法

  • 相关阅读:
    Android网络开发的那些事儿
    first day to Ruby on rails
    [转]Windows SDK与DirectX SDK集成
    Windows8
    [转]MPI--MPI+VS2010 配置及编译
    codeblock添加头文件路径和静态库路径
    汇编笔记1:debug
    Eclipse Error
    Android SDk 离线安装方法
    求一程序员合租,回龙观东大街地铁站十分钟,精装次卧2000,无需押金,一共两家
  • 原文地址:https://www.cnblogs.com/wdsthink/p/4372901.html
Copyright © 2011-2022 走看看