集合、框架

集合的由来

1. 处理多个相同数据我们采用数组,但数组空间固定不能动态增长,插入或删除元素比较麻烦,才采用集合解决
2. 集合特点:元素类型可以不同、集合长度可变、空间不固定。

框架:

1. 为了解决某个元素问题,预先设计好的一系列,既有继承或实现关系的类的接口
2. Collection:
  1. List:列表、线性:有序,表示集合当中元素的放置是有序的,
     是指在集合内部可以通过前一个元素找到下一个元素
  2. Set:集;集合当中的元素不能重复,使用自己内部的一个排列机制放置元素
  (1. 操作一列数据,而且数据不重复
     Set()方法,有add()-向集合中添加元素
                 remove(Object o)-将元素从集合中移除
                 size()-查看集合的长度)
  3. Map:映射;存放数据都是键、值、对的形式,(键-值)键是不能重复的,
  4. Iterator:迭代器,遍历集合;
3. Compparable--Comparator:比较器(写入的是规则)

集合的选用限制

1. 操作一列数据,而且数据有重复时选择List接口的实现类
2. List接口的实现类的选择
   1.ArrayList:使用最广泛,几何元素增加或删除操作     
3. 泛型:帮助我们某个集合对象,只允许放入某种类型元素
  1. ArrayList:底层实现用的数组,存放的元素都是在连续的内存空间中。
  2. LinkedList:底层实现使用的是链表,不是普通的链表,是双向链表,存放的元素没有连续的,每个元素后面都有下一个元素的引用;双向链表指 ,还能通过后面一个元素找到前一个元素。
  3. Vector:线程更加安全,底层结构也是数组
  4. 所有的集合都是存放的引用数据类型
一旦重写了equals方法,也要重写Hashcode()方法,来判断两个对象是否重复;要求:equals返回true,hashCode值要相同;

结论: 1. 一旦重写了equals方法,也要重写Hashcode()方法 , equals返回true,hashCode值要相同; 2. equals返回false,不要求hashCode返回值不相同;

Map接口

.1 .Map接口不是Collection接口的继承。Map接口用于维护键、值、对(key/value pairs)。
方法:put()-将键值对存入集合
     get()-根据键取出元素的值
     keySet()-将Map中的所有的键取出形成一个Set
     value()-将Map中的所有值取出形成一个Collection
     remove()-根据键移除值   

  1. Comparable:内部比较器

     返回int指代是:this对象的索引-o对象的索引
     返回正数-o排在this前面
     返回负数-o排在this后面
     返回0----o与this在位置上没有前后之分
    
  2. Comparator:外部比较器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值