黑马程序员_13集合框架

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

Collection 集合

|__List: 元素有序,可重复,该集合体系有索引,凡是可以操作角标的都是该体系特有方法

|__Set 元素无需,不可重复,该集合体系没有索引

List:

|__ArrayList:查询速度快,线程不同步,底层用的是数组接口,增删较慢,判断元素是否存在重复只依赖equals方法

|__LinkedList:增删速度快,底层用的是链表结构,查询慢

|__Vector: 已被ArrayList取代,枚举是Vector特有的取出方式,枚举和迭代功能一样,名称过长被迭代器取代

增: add(index,element)

addAll(index,collection)

删:

remove(index)

改:

set(index,element)

查:

get(index)

subList(from,to) //从from到to位置,不包括to

listIterator() //List集合特有迭代器,ListIterator是Iterator的子接口

在迭代时,不可以通过集合对象的方法操作集合中的元素,因为会发生异常,所以迭代时们只能用迭代器的方法操作元素,可是Iterator方法有限

如果想要其他的操作,需要使用它的子接口:ListIterator,而该接口只能通过List集合的ListIterator()方法获取

ListIterator:

hasNext() /xx.Next()   //是否有下一个元素 | 下一个元素

hasPrevious xx.Previous() | 上一个元素



SET:元素无序,存入和取出顺序不一定一致

|__HashSet 底层数据结构是哈希表

|__TreeSet 二叉树判断元素是否相同是以返回值是否为0,大于则返回正数,小于则返回负数

字符串本身就具备比较性,但是它的比较方式却不是需要的


HashSet,保证元素的唯一性,对判断元素是否存在,以及删除等动作是通过元素的两个方法 hashCode和equals完成

如果元素的哈希值相同才判断equlas是否为true,如果哈希值不同,不调用equals

TreeSet:可以对Set集合的元素进行排序,排序时,当主要条件相同则一定要判断次要条件,底层数据结构是二叉树

保证程序元素唯一性的依据是  compareTo方法返回0

排序:

1:让元素自身具备比较性,元素要实现comparable接口,覆盖compareTo方法,这种方式称为元素自然排序,默认顺序

2:元素自身不具备比较性或具备的比较性是不被需要的时候,需要让集合自身具备比较性,定义比较器,将比较器作为参数传递给TreeSet集合的构造函数

两种排序都存在是,以比较器为主,定义一个类,实现Comparator接口,覆盖compare方法


---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值