单列集合。双列集合。 Collections工具类

单列集合

Collection

collection: 是单列集合的跟接口

list子接口

ArrayList

底层是数组(查询快,增删慢)

LinedList

底层是双链表,增删快,查询慢,双向链表可以快速对首尾元素进行操作.

常用方法

addFirst() : 在该列表开头插入指定的元素

addLast(): 将指定的元素追加到此列表的末尾

getFirst(): 返回此列表的第一个元素

getLast() : 返回此列表的最后一个元素

removeFirst() : 从此列表中删除并返回第一个元素

removeLast(): 从此列表中删除并返回最后一个元素

特点:

1,有索引

2,元素可以重复

3,存入和存取顺序一致

常用方法:

add( E e) : 添加元素

add( int index,E e) : 在此集合指定的位置插入指定的元素

remove() : 删除指定元素索引指定的元素,返回被删除的元素

boolean removre() : 从集合移除指定的元素

set() : 修改指定索引初的元素,返回被修改的元素

get() : 返回指定索引处的元素

clear() : 清空集合

contains() : 判断集合中是否存在指定的元素

size() : 集合的长度,也就是集合中元素的个数

addAll() : 添加所有元素到列表中

Set子接口

HashSet

TreeSet

特点:

1,没有索引

2,元素不可以重复

3,存入和去除顺序不一致

Map集合

概述: 一一对应的关系,叫做映射,用于保存具有映射关系的数据,称为双列集合

特点

map是一种键值对集合,每一个元素都包含一个键对象和一个值对象

map集合中,键不允许重复,值可以重复

键和值是一一对应的 通过键可以找到与之对应的唯一的值

Map接口的常用实现类

HashMap

特点

底层采用的是哈希表结构,元素的存取无序(HashSet的底层其实是借助了HashMap实现存储)

要保证键的唯一,不重复,需要重写键的hashCode()方法和equals()方法

TreeMap:

特点

是map里面的一个实现类

底层的数据结构是红黑树: 可以对元素的键进行排序

排序的方式有两种:

自然排序

使用无参构造器创建TreeMap集合,存入集合的键需要实现Comparable<T> 接口

比较器排序

使用带参构造器创建TreeMap集合,传入Comparator<T> 的实现类

Map集合的方法

put() : 添加元素

get() : 根据指定的键,在Map集合中获取对应的值

remove() : 根据键删除键值对应的元素

clear() : 移除所有的键值对应的元素

containKey() :判断集合是否包含指定的键

containValue() : 判断集合是否包含指定的值

isEmpty() :判断集合是否为空

size() : 集合的长度,也就是集合中键值对的个数

map遍历:

map.entrySet(); 增强for循环遍历,获取key 获取value,打印输出

map.keySet(); 获取迭代器遍历集合所有数据

数组的二分查找步骤

1,定义两个变量,表示要查找的范围。默认min = 0 , max = 最大索引

2,循环查找,循环条件是min <= max

3,计算出mid的值

4,判断mid位置的元素是否为要查找的元素,如果是直接返回对应的索引

5,如果要查找的值在mid的左半边,那么min值不变, max = mid-1,继续下次循环查找

6,如果要查找的值在mid的右半边,那么max值不变, min = mid+1,继续下次循环查找

7,当min > max 时, 表示要查找的元素在数组中不存在,返回-1

Collections工具类

操作集合的工具类

提供了许多集合的方法,

方法

addAll(Collection<? super T> c, T... elements) : 将所有指定的元素添加到指定的集合中

shuffle(List<?> list) :随机打乱list集合中元素的顺序

sort() : 排序

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值