类集(一)

所谓的类集指的是对象数组的应用
传统的对象数组长度是固定的,所以数组一般不会使用;
后来使用了链表来实现动态的对象数组:
难于编写;
操作性能也麻烦:
链表使用了了Object类进行保存,所有的对象必须发生向上转型或向下转型;

在整个类集里有几个核心接口:
Collection,List,Set;
Map;
Iterator,Enumeration;

总结:
类集就是Java数据结构的实现,是动态对象数组;

Collection:
是类集之中单值保存的最大父接口;
既:每一次向集合里面保存一个对象;
为了开发要求的严格性,一般会使用它的两个子接口,List(允许重复),Set(不允许重复);
总结:
Collection接口现在几乎不直接使用了;

LIst:
List是Collection最为常用的子接口;
几个重要方法:
public E  get(int index) Returns the element at the specified position in this list.
public E  set(int index, E  element)//修改
public ListIterator < E > listIterator()

List的两个子类:ArrayList , Vector(一般不使用)

面试题:ArrayList 与 Vector 的区别
时间:Vector 1.0 推出, ArrayList 1.2推出
性能:ArrayList采用异步处理,非线程安全;
Vector采用同步处理,线程安全;
输出:ArrayList支持foreach,Iterator,ListIterator
Vector 支持foreach,Iterator,ListIterator,Enumeration

总结:
List的保存数据就是数据的添加数据;
List集合中可以保存重复元素;
List子接口比Collection扩充了一个get方法;
List使用子类就使用ArrayList接口;

Set:
Set接口并不像LIst接口那样对于Collection接口进行了大量的扩充,而是简单的继承;
Set集合下无重复元素;

Set接口下有两个常用的子类:HashSet,TreeSet;
HsahSet:保存的元素是无序的
TreeSet:保存的元素自动排序;

TreeSet类主要是依靠Comparable 接口的 compareto()方法 , 如果返回值等于0,
那么就认为是重复数据,不会被保存;

关于重复元素的说明:
很明显: Comparable接口只能够负责TreeSet子类进行重复元素的判断,它并不是真正的用于能够进 行重复元素验证的操作。如果要想判断重复元素,那么只能够提供依靠Object类中所提供的方法;
1:取得hash码pubic int hashCode;
先判断hash码是否相同,依靠哈希码取得对象的内容
2 : 对象比较:public boolean equals(Object obj)
再将对象的属性依次的比较;

只要在没排序的情况下,判断重复用hashCode()与equales()

总结:
开发之中,Set不是首选,真要使用也首先选择hashCode
Comparable大部分只存在理论范围内
Set必须保持前提,数据不重复



Map:
V  put( K  key, V  value)
V  get( Object  key)
Set < Map.Entry < K , V >> entrySet()//将Map集合转换为Set集合
Set < K > keySet()//取出全部的key

HsahMap:
无序;
如果出现了新的key会进行覆盖,使用新的内容替代旧的内容

HashTable:
HashTable ,key 与 value 不允许为空

面试题:HashMap与HashTable的区别
HashMap 允许key或value为空 1.2
HashTable 不允许 1.0


Map接口里没有定义任何返回Iterator 接口对象的方法;
每当用户用put()向Map集合里面保存一对数据的时候,实际上所有数据都被封装成Map.Entry接口对象
(内部接口)使用Static定义的内部接口就是外部接口
Map利用Intertor输出的方法:
Set < Map.Entry < K , V >> entrySet()//将Map集合转换为Set集合,里面的泛型是Map.Entry
利用Set集合中的Itertor()方法将Set中的集合进行Itertor进行输出
每一次循环取出的都是Map.Entry对象,利用此对象进行key与value的取出

总结:
Collection 存放数据的目的是为了输出,Map是为了查找
Map使用Iterator输出的步骤
HashTable ,key 与 value 不允许为空,HashMap可以;
如果出现了新的key会进行覆盖,使用新的内容替代旧的内容




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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值