zoukankan      html  css  js  c++  java
  • 集合objectjava_collection

    发一下牢骚和主题无关:

        集合和数组的区别?

        *集合:

        长度是可以变的

        集合只能存储对象类型

        集合可以存储多种引用数据类型的元素

        *数组:

        长度是固定的。

        数组可以存储对象类型,也可以存储基本数据类型

        数组存储的多个元素是同一种数据类型

        Collection 接口

        1,添加元素

        添加单个元素:boolean add(Object obj);

        添加多个元素:boolean addAll(Collection c);

        2,判断元素

        判断元素是不是存在:boolean contains(Object obj);

        判断一个集合的元素师否包含在当前集合中:boolean containAll(Collection c);

        判断集合是不是为空:boolean isEmpty();

        3,删除元素

        移除所有元素 :void clear();

        移除单个元素:boolean remove(Object o);

        移除多个元素:boolean removeAll(collection c)

        4,获得元素

        返回集合上的一个迭代器:Iterator iterator():

        Iterator it = con.iterator();

        while(it.hasNext()){

        S.O.P

        it.next()

                                      }

        5,交集

        交集:boolean retainAll(Collection c)

        6,集合元素个数

        元素个数:int size();

        7,把集合转成数组

        Object[] toArray();

        *Set:元素有序(存入顺序和掏出顺序分歧),元素可以重复

        *HashSet:底层数据结构是哈希表。

        如何保证元素的独一性呢?

        它依赖两个方法:hashCode()和equals()

        首先判断哈希值是不是相同:

        不同:就把元素添加到集合中。

        相同:继承进入equals方法比拟

        返回true,说明元素重复,不存。

        返回false,就把元素添加到集合

        *TreeSet:底层数据结构是二叉树。

        可以让集合中的元素排序。

        如何保证元素的独一性的呢?

        它是根据比拟返回的值是0,说明元素是重复的,就不添加。

        有两种实现计划:

        A:让自定义对象具有比拟性

        实现Comparable接口

        B:让集合具有比拟性

        实现Comparator接口

        如果两种情况都存在,以B为主

        *List:元素无序,元素要求独一

        ListIterator lit = list.listIterator();//特别方法

           //迭代器容易涌现并发修改异常 在应用迭代器元素的时候,不能应用集合区操作元素,否则,就会涌现并发修改异常

        每日一道理
    信念是巍巍大厦的栋梁,没有它,就只是一堆散乱的砖瓦;信念是滔滔大江的河床,没有它,就只有一片泛滥的波浪;信念是熊熊烈火的引星,没有它,就只有一把冰冷的柴把;信念是远洋巨轮的主机,没有它,就只剩下瘫痪的巨架。

        *ArrayList//遍历4种 普通for 增强for Iterator ListIterator

        //掏出ArrayList中重复的元素(自定义对象)要重写 equals方法 例如:return this.age==s.age && this.name.equals(s.name);

        底层数据结构式数组,查询快,增删慢。

        线程不安全,效率高。

        *Vector//3种普通for 增强for Enumeration

        底层数据结构式数组,查询快,增删慢。

        线程安全,效率低

        *LinkedList

        底层数据结构式链表,查询慢,增删快。

        线程不安全,效率高

        Map接口  : 存储的是键值对情势的元素

       它的每一个元素,都是由键和值两个元素组成

       键是不能有重复的,值是可以重复的

       每一个键独一指向一个值

        1,添加功能

        put(k key, V value)

        2,判断功能

        boolean containsKey(Object key)

        boolean containsValue(Object value)

        boolean isEmpty()

        3,删除功能

        void clear()

        remove(Object key)

        4,获得功能

        Set<Map,Entry<k,v>> entrySet()

        Set<k> keySet()

        V get(Object key)

        Collection<v> values()

        5,长度

        int size()

        *两种遍历方法

        1,A:先获得所有丈夫的集合,keySet

      B: 遍历丈夫集合,获得到每一个丈夫,增强for

      C:通过每一个丈夫找到自己的妻子。get()

        2,A:先获得结婚证的集合,entrySet()--Set集合的每一个元素师一个结婚证对象

      B:遍历结婚证集合,获得到每一个结婚证,增强for

      C:通过结婚证获得丈夫和妻子,getKey(),getValue()

        *HashMap

        底层数据结构是哈希表

        如何保证键的独一性呢

        依赖hashCode()和equals()方法

        线程不安全,效率高,允许null键和值

        *Hashtable

        底层数据结构是哈希表

        如何保证键的独一性呢

        依赖hashCode()和equals()方法

        线程安全,效率低,不允许null键和值

        *TreeMap

        底层数据结构是二叉树

        如何保证键的独一性呢

        两种方法

        自定义元素具有比拟性

        集合具有比拟性

        线程不安全,效率高,允许null值,不允许null键

    文章结束给大家分享下程序员的一些笑话语录: 姿势要丰富,经常上百度!

    --------------------------------- 原创文章 By
    集合和object
    ---------------------------------

  • 相关阅读:
    如何在Web项目中给没有添加API核心组件添加APIController的帮助页HelpPage
    如何在MVC_WebAPI项目中的APIController帮助页面添加Web测试工具测试
    exception throw in progress runner thread_VS2015中SVN源代码无说明提交异常
    [转]AMBA、AHB、APB、ASB总线简介
    UML和模式应用4:初始阶段(6)--迭代方法中如何使用用例
    UML和模式应用4:初始阶段(5)--用例编写的准则
    startup_MK64F12.s文件解析
    [转] bss段、data段、text段
    [转]GDB-----2.watchpoint
    [转]GDB-----1.GDB概述
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3098668.html
Copyright © 2011-2022 走看看