集合综合理论编

作者在 2010-05-21 11:08:59 发布以下内容
                           讲述的是集合一章中的内容
Set:不区分元素的顺序,不允许出现重复的值
list:区分元素的顺序,且允许出现重复的值
map:采用key——values的,不允许有重复的键,每个键最多对应一个值
java集合只能保存引用类型的数据,是对象的引用
Collection接口描述set和list集合类型的根接口
相关方法:
            add()如果增加重复元素,则增加失败,返回false
            contains()判断是否包含有某个元素
            iterator()返回成一个迭代器
List可以对元素的插入位置进行精确控制,根据元素索引访问元素等功能
          set(index,elemetn)修改指定索引下的元素
Map关系集的形式查看某个映射的内容
          put(object key,object values)增加一个新的值
          get(object key)查找key上面的值
          Set keySet()将所有的key返回到一个set中
          Collection values()将所有的值返回到一个collection集合中
Collection——set——hashset/treeset
Collection--list——Arraylist/vector——Stack(栈)
Map——hashmap/Treemap/hashtable——properties
StringTokenizer——Enumeration(不是很常用)
ArrayList类实现了list接口,用于表述长度可度的数组列表
         他允许取值为null,除实现了list接口的所有功能外,还有以下方法
         ArrayList()创建一个容量为10的null的列表
         ArrayList()创建一个指定长度的null的列表
         ensureCapacity(int minCapacity)增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。
         trimToSize()将此 ArrayList 实例的容量调整为列表的当前大小(也就是说,出除后面为null的值)
         相关实例请查看:http://hi.bccn.net/space-447825-do-blog-id-16964.html
Vector也实现了list接口,其描述的也是可变长度的对象数组
         是同步(线程安全的),运行效率要低一些,主要用于多线程环境中,而arryalist是不同步的,适合在单纯种环境中使用
         vector()创建一个长度为10的vector容器
         elementAt(int index)得到指定的值
         addElement(Object ojb)增加值
         removeElementAt(int index)移除指定的值
         insertElecentAt(E obj,index)在指定位置查入相关的值
         removeElement(object obj)删除值,如果有重复的只删除第一次出现的
         Object[] toArray()将当前集合中的元素全部返回到一个数组中
                         相关实例请查看:http://hi.bccn.net/space-447825-do-blog-id-16965.html
 Stack继承了vector,对应了数据结构中的“后进先出”存储和操作数据结象栈
      Stack()创建 一个空的栈
      push()在当前栈中压入一个数据, 把项压入堆栈顶部。
      pop()移除堆栈顶部的对象,并作为此函数的值返回该对象。
      peek() 查看堆栈顶部的对象,但不从堆栈中移除它。
      clear()清空栈
      search(object o)查看栈中的位置,返回最进的一个。以 1 为基数
                   相关实例请查看:http://hi.bccn.net/space-447825-do-blog-id-16966.html
 Iterator接口描述的是以统一方式对各种集合元素遍历/迭代工具,也称"迭代器"
          允许在遍历过程中移除集合中的元素
      hasNext()如果仍有元素可以迭代,则返回 true
      next()返回迭代的下一个元素
      remove()从迭代器指向的 collection 中移除迭代器返回的最后一个元素
                 相关实例请查看:http://hi.bccn.net/space-447825-do-blog-id-16967.html
 HashSet类实现了set接口,描述典型的set集合结构
                  不允许出现重复元素,不保证集合中元素的序
                   允许包含值为null的元素,但最多只能有一个,
                   相关实例请查看http://hi.bccn.net/space-447825-do-blog-id-16968.html
 TreeSet类也实现了Set,它描述的是set的一种变体——可以实现排序功能的集合
             将对象元素添加到TreeSet集中时会自动按照某种比较规则将其插入到有序的对象序列中
            以保证TreeSet集合元素组成的对象序列时刻按照“升序”排列
            相关实例请看:http://hi.bccn.net/space-447825-do-blog-id-16969.html
Comparable接口中定义的compareTo()方法,实现对整体排序所需的比较逻辑
                  排序称为自然排序,和自然比较
                  如果重写了,compareTo()那么要保证equals()保持一致
                   相关实例请查看:http://hi.bccn.net/space-447825-do-blog-id-16971.html 
 HashMap实现了Map接口  ,基于哈希表的实现了前述的映射集合结构
           不保证其中元素的先后顺序,并且允许null值和null键
          当集合中不存在当前检索的,get()返回的是空,而不会报错
          影响hashMap性能的两个参数:初始容量和加载因子
          相关实例请看:http://hi.bccn.net/space-447825-do-blog-id-16972.html
 Hashtable也是采用键和值,键和值不允许为null,
           是同步的,即线程安全的,效率相对要低一些,用于多线程,用法与hashmap完全一样       
 Enumeration接口:作用与iterator接口类似,但只提供遍历vector和hashtable(及子类properties)
             且不支持集合元素的移除操作
             些接口不是很常用,这里就不给实例了
 Collections定义了多种集合操作的方法,实现对集合元素排序,取极值,批是拷贝,集合结构
          转换,循环移位以及匹配检查等功能
          相关方法:
           sort(List<T> list)  根据元素的自然顺序 对指定列表按升序进行排序。
           reverse(List<?> list)  反转指定列表中元素的顺序。
           shuffle(List<?> list)  使用默认随机源对指定列表进行置换。
           copy(List<? super T> dest, List<? extends T> src) 将所有元素从一个列表复制到另一个列表。
           list(Enumeration<T> e) 返回一个数组列表,它按返回顺序包含指定枚举返回的元素
           frequency(Collection<?> c, Object o) 返回指定 collection 中等于指定对象的元素数
           max(Collection<? extends T> coll)  根据指定比较器产生的顺序,返回给定 collection 的最大元素
           rotate(List<?> list, int distance) 根据指定的距离轮换指定列表中的元素。
               相关实例请查看:http://hi.bccn.net/space-447825-do-blog-id-16973.html
 Arrays类定义了多种数组操作方法,实现了对数组元素
                 排序,填充,转换为列表或字符串形式、增强的检索和深度比较等功能
              asList()返回一个受指定数组支持的固定大小的列表
              sort()对指定的 byte 型数组按数字升序进行排序
              binarySearch(int[] a, int key) 使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。
              toString(Object[] a)  返回指定数组内容的字符串表示形式。
              相关实例请查看:http://hi.bccn.net/space-447825-do-blog-id-16975.html
集合 | 阅读 917 次
文章评论,共0条
游客请输入验证码
浏览290870次