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

最新文章

  1. 【OOAD】OOAD概述
  2. MDK的一些设置(尤其是部分代码无法断点问题的解决)
  3. iOS移动开发周报-第24期
  4. js的语句
  5. 深入DNS
  6. Fedora 命令
  7. UILabel的使用方法
  8. FineReport中以jws方式调用WebService数据源方案
  9. datagridview数据绑定操作数据库实现增删改查
  10. Android Studio开发遇到程序崩溃问题
  11. Mybatis接口编程原理分析(二)
  12. vue组件封装选项卡
  13. Laravel 5.2--git冲突error: Your local changes to the following files would be overwritten by merge:
  14. Flannel网络插件配置
  15. Jmeter ----Bean shell使用
  16. 弹性势能,position,min用法,获取元素的宽
  17. push is not a function
  18. lua知识点整理
  19. HMM的概述(五个基本元素、两个假设、三个解决的问题)
  20. poj3656

热门文章

  1. c++学习书籍推荐《The C++ Programming Language第四版》下载
  2. NetCore 中间件获取请求报文和返回报文
  3. .NET项目迁移到.NET Core操作指南
  4. mybatis-generator生成数据表中注释
  5. linux server 发送邮件
  6. Excel催化剂开源第22波-VSTO的帮助文档在哪里?
  7. Android基础知识复习之打开照相机拍照并获取照片
  8. Simple TPU的设计和性能评估
  9. 关于sprintf的使用注意
  10. python基础——列表(list)