java--集合

1.集合的作用:

1.1为什么出现集合类?
Ø面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。
1.2数组和集合类同是容器,有何不同?
Ø数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象。
1.3集合类的特点
Ø集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。

2.集合关系图



3.

Collection接口有两个子接口:

List(列表) ,Set(集)

List:可存放重复元素,元素存取是有序的。

List接口中的常用类:

ØVector:线程安全,但速度慢,已被  ArrayList替代。
ØArrayList:线程不安全,查询速度快。
ØLinkedList:链表结构,增删速度快。

取出List集合中元素的方式:

Øget(int  index):通过脚标获取元素。
Øiterator():通过迭代方法获取迭代器对象。

关于迭代:
   是取出集合中元素的一种方式。
Ø因为Collection中有iterator方法,所以每一个子类集合对象都具备迭代器。
Ø用法:1.

for(Iteratoriter = list.iterator();iter.hasNext();  )

{

  System.out.println(iter.next());

}


2.

Iteratoriter = l.iterator();

while(iter.hasNext())

{

  System.out.println(iter.next());

}

3.迭代注意事项:

Ø迭代器在Collcection接口中是通用的,它替代了Vector类中的Enumeration(枚举)。
Ø迭代器的next方法是自动向下取元素,要避免出现NoSuchElementException。
迭代器的next方法返回值类型是Object,所以要记得类型转换


Set:不可以存放重复元素,元素存取是无序的。
   
先判断hashcode是否相同,如果不同,可
   
以存放,如果相同,再判断equals方法是否
   
相同。因此即使equals相同,但是如果
   
hashcode不同,也能添加。跟是否同一对象
   
无关。

set中的常用类:

HashSet:线程不安全,存取速度快。HashSet:通过equals(比较元素的值)方法以及是否是同一对象和hashCode   (比较元素在内存中的地址)   方法来保证元素的唯一性。

TreeSet: 线程不安全,可以对Set集合中的    元素进行排序。 通过compareTo或者compare    方法中的来保证元素的唯一     性。元素是以二叉树的形式存     放的。

       TreeSet的使用:(往TreeSet中添加元素时候,必须先比较要添加的元素和集合中已有的元素是否相同)

        1.使用比较方法判断对象是否重复。
2.比较方法实现有两种
a)自定义Comparator比较器,和TreeSet关联。
b)让javaBean实现Comparable接口,实现CompareTo()方法。
3.TreeSet可以容纳null元素。
4.TreeSet可以使用降序排列。
通过descendingIterator()方法得到降序迭代器实现。
5.TreeSet默认升序排列。


4.泛型:

Ø提高了程序的安全性
Ø将运行期遇到的问题转移到了编译期
Ø省去了类型强转的麻烦
Ø泛型类的出现优化了程序设计

5.Map

ØMap与Collection在集合框架中属并列存在
ØMap存储的是键值对
ØMap存储元素使用put方法,Collection使用add方法
ØMap集合没有直接取出元素的方法,而是先转成Set集合,在通过迭代获取元素
ØMap集合中键要保证唯一性

Map集合常用类:

ØHashtable:线程安全,速度慢,不允许存放null键,null值,已被HashMap替代。
ØHashMap:线程不安全,速度快,允许存放null键,null值。
ØTreeMap:对键进行排序,排序原理与TreeSet相同。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值