集合 篇

来源:互联网 发布:求最小公倍数的vb算法 编辑:程序博客网 时间:2024/06/01 18:14

集合 篇

Collection 集合(接口)   

add(value);

     List 集合(接口)--重复元素,将以特定次序存储元素。所以取出来的顺序可能和放入顺序不同。
       ArrayList  --- 数组+单向链表 ,顺序 , 由数组实现的List。它允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。
       LinkedList --- 数组+双向链表 ,首尾,只应该用来由后向前遍历ArrayList,而不是用来插入和删除元素,因为这比LinkedList开销要大很多。

 

 
  TreeSet 集合
          底层 TreeMap 处理 add()--> put(key,value)
          集合元素有一定的排序规则(比较器)

           自然排序: Comparable 接口--compareTo()


              实体类 implements Comparable {
                  compareTo()
                  学号升序
                  名字升序 
              }
     
           自定义:   Comparator 接口--compare()
               定义TreeSet集合时,指定排序规则
                new TreeSet<> ( 


                     new Comparator( ){
                        int compare()
                     } );
 Map 集合
  基本特点:
  1. 向集合中添加元素 put(key,value )
         maps
         maps.put( 1,"hello" ) -- Entry<key,value>
         maps.put( 2,"morning")-- Entry

         keySet(): 所有key
         values(): 所有values

         entrySet(): 所有 Entry对象     


  2. 重复对象:
     基本数据类型 
     对象数据类型数据重复:
      1. User 类  hashCode() equals()
      2.  
        users
        u1 = new User("101","王小王");
        u2 = new User("101","王小王");
        u3 = new User("","");


        users.put( u1, 2);
        users.put( u2, 1);
        users.put( u3, 3);
 
  3. Map集合的具体实现:
     HashMap :   
     TreeMap :

 HashMap 集合
  HashMap 集合的特点:
  1. 底层使用 哈希表 的结构存储元素
     哈希表: 数组+链表结构
     数据结构中存储数据时经常用到的三种结构:
      数组:长度定义定义之后,不能再改变;顺序取数据时
           效率高;若增加数组元素,需要重要开辟新空间,
           浪费空间且增加执行负担
           
      链表:可随意扩容长度,存储数据时,可随机存储,
           数据在表中存储位置较零散,查找某数据时
           数据量大;


      哈希表:将 数组和链表的特点结合起来,存取数据
             操作数据方便,效率得到提高;
   
  b. HashMap 在存储数据时,两个重要参数:
      注:这两个参数是基于 哈希表 操作的;
      capacity:容量
      load factor: 类加载因子    
      初始容量是 哈希表中"桶"的数量,创建一个HashMap后,默认容量为16;

      类加载因子: 创建一个HashMap后,类加载因子默认为

     类加载因子是哈希表在其容量自动增加之 前可达到多满的一种尺度.一般来说,负因子越大,表中的装载量越多;

  
  c.HashMap 中是如何存储数据的? ( put )
          
  d.放到 HashMap中的数据,不能保证存取顺序一致;
  
  TreeMap 集合
  放到TreeMap集合中的元素应该按照一定的规则排序
  Comparable  Comparator
    基本数据类型的封装类已经自动实现,String也实现了
    自然排序,默认是按key值排序:
         整数按数值从小到大
         浮点型从小到大
         字符型:ASCII码
  TreeMap中提供 了一些 fir*** last**()
  FirstKey()| LastKey()
  FirstValue()|LastValues()
  FirstEntry()|LastEntry

Collection与Collections区别

在学习的时候要注意区分这两个概念。

java.util.Collection 是一个集合接口

   它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。

java.util.Collections 是一个包装类

    它包含有各种有关集合操作的静态多态方法。此类未提供public构造器,不能实例化,就像一个工具类,服务于Java的Collection框架。


0 0