zoukankan      html  css  js  c++  java
  • 容器与集合

    容器(Collection)
    数组是一种容器, 集合也是一种容器
    java编程中, 装其他各种各样的对象(引用类型)的一种东西, 叫容器。

    Collection---接口:
    Set接口(不允许重复, 没有顺序)
    Set接口中的方法没有自己定义的, 全部都是继承自Collection
    *HashSet---实现类(以哈希码表为底层的实现机制)
    TreeSet---实现类(以二叉树(一种数据结构)为底层的实现机制)
    没有顺序, 不可以重复(可以互相equals就叫重复)
    List接口(可以重复, 有顺序)
    *ArrayList---实现类(以数组为底层的实现机制)
    查询速度快, 但是增删改效率低
    LinkedList---实现类(以链表为底层的实现机制)
    查询速度慢, 增删改的效率高
    有顺序, 可以重复。


    Collection接口的使用
    Collection<String> c = new ArrayList<String>();
    问题:
    为什么不直接写ArrayList<String> a = new ArrayList<String>();
    c.add(参数类型必须是Object)

    c.remove方法: 通过判断两个对象是否互相的equals来确定是不是该删除该对象, 自定义的类, 需要自己重写父类的equals方法

    重写equals方法, 也应该重写hashCode方法

    hashCode通常用来做索引, 一个对象通过它的hashCode的值可以找到它在内存中的地址, 所以两个对象如果equals了, 而且又要作为索引的情况下, hashCode的值必须相等。

    List接口:
    有顺序, 可以重复添加
    get
    set(有一个返回值要注意 !)
    add
    remove(int)
    remove(Object)
    indexOf
    lastIndexOf
    retainAll(Collection)----返回一个boolean值,
    当list的内容被改变的时候返回true, 否则返回false

    Set接口
    没有顺序, 但是不可以重复

  • 相关阅读:
    重构原则
    【重构:改善既有代码的设计】读书笔记——开篇
    C#值参数和引用参数
    使用Aspose.Cells利用模板导出Excel(C#)
    在MVC中使用rdlc格式的报表
    程序员如何高效学习
    IT 圈里有哪些经常被读错的词?
    VS2017生成解决方案报错,提示对路径的访问被拒绝
    JavaScript中的数值转换
    Xadmin的配置及使用
  • 原文地址:https://www.cnblogs.com/cy960202/p/9027380.html
Copyright © 2011-2022 走看看