java 对象集合 key_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 link = new LinkedList();

link.addFirst(567);

link.add(12);

link.add(111);

System.out.println(link);

Iterator 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值