java面向对象中的集合
1.学习集合的原因?
A.数组是面向过程的,集合是面向对象的。
B。集合是类,具备类的封装,继承,多态。。。超强功能。
C。数组是固定长度,集合是可变长度
D。数组没办法获得真实的元素个数;集合可以。
E。数组只有一种固定的存值方法(顺序结构存值);集合具有多种方式,适合于多种场合。
2.集合的家庭成员:
   (第一块:)
               Collection  【无序,不唯一】      Map【key  , value】
          【无序,唯一】【无序,不唯一】
list 【有序,不唯一】 set【无序,唯一】
ArrayList     LinkedList    Vector              HashSet     TreeSet  HashMap
   |     |         |           |     |
【顺序存储】 【链表存储】         【hash表】  【二叉树】      【哈希表+键值对】
3.介绍ArrayList:
存值方式: 顺序结构存储。
使用场合: 遍历和随机访问。
常用方法:
      增加:add();addAll(Collection);
     
      删除:remove(Object或者下标);removeAll(Collection);
查找:contains(Object);containsAll(Collection);size();get(下标);
迭代:Iterater:
           使用:
  Iterator iter =list.iterator();
  while(iter.hasNext()){
   System.out.println(iter.next());
  }
4.介绍Vector 和 ArrayList的区别:(了解)
1.相同点:原理相同,底层代码相同,方法相同
2.不同:Vector 线程安全的;每次增长1倍;老版本jdk提供操作集合的接口
ArrayList 效率高,线程不安全;每次增长0.5倍;ArrayList是新版本提供集合的接口。
5.介绍LinkedList:
存值方式:链表结构
使用场合:删除和修改
方法:
      增加:add();addAll();addFirst();addLast();
     
      删除:remove();clear();removeAll();
            removeFirst();removeLast()
      查找:contains("北京");containsAll(list1);size();get();
            getFirst();getLast();
      迭代:Iterater:    
         
  对比LinkedList 和ArrayList的区别:
1.存值方式不一样:顺序结构,链表结构
2.使用场合不一样:遍历和随机访问;删除和修改
6. 介绍泛型:
    学习泛型的原因?
     
       保证集合在【编译期】存值时没问题;那么运行期取值也没问题。
    作用: 在【编译期】,控制接收元素的类型。
       
    泛型用在集合:  
LinkedList<Integer> link = new LinkedList<Integer>();
   link.addFirst(567);
          link.add(12);
          link.add(111);
   System.out.println(link);
   
 Iterator<Integer> list=link.iterator();
 while(list.hasNext()){
  Integer i=list.next();
  System.out.println(i+1);
 }
7.集合的第二块:
Map (键 值对,key无序唯一;value 无序 不唯一)
HashMap TreeMAP HashTAble
(7.1)介绍:HashMap    
存值方式: hash表存储键值对。
HashMap vs Hashtable (了解)
1. Hashtable 老jdk版本;HashMap 新版本
2. Hashtable 线程安全; HashMap 效率高,线程不安全。
        3. HashMap  实现Map接口 ;Hashtable 继承 Dictionary。
        
 4.hashMap允许空值,hashtable不允许空值
相同:原理,算法,存值方式相同。
方法:
增加: put(011, "北京");putAll(map1);
删除:remove(key); ---根据key ,去删除 value
       查询:get(key)--根据key ,去删除 value。
      keySet()---返回键的集合
      values()---返回值的集合
      containsKey(key)---如果存在由指定的键映射的“键-值对”,返回true
本文来自博客园,作者:后山人,转载请注明原文链接:https://www.cnblogs.com/zhuhuibiao/p/9313885.html
经营好自己的现在,等待未来向我飞奔而来。
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号