集合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
---------------------------------

posted @ 2013-05-25 13:52  xinyuyuanm  阅读(164)  评论(0编辑  收藏  举报