java-集合篇

集合

Collection
  1. 所有的单列集合的父类
    1. List 有序集合
      1. ArrayList
      2. Vector
      3. LinkedList
    2. Set 无序集合
      1. HashSet
      2. TreeSet
Collection常用功能
Collection<String> col = new ArrayList<>();
col.add("我")// 向集合中添加元素,返回bollean
col.remove("你")// 移除集合中的某个元素,返回Bollean
col.contains("他")// 判断元素中是否包含指定元素
col.isEmpty(); // 判断集合是否为空
col.size(); // 输出集合的长度
col.clear(); // 清空集合中所有的元素
Iterator迭代器 – 接口
Collection<String> col = new ArrayList<>();
Iterator<String> it = col.iterator(); // 获取迭代器的实现类
it.hasNext(); // 通过迭代器判断集合是否有下一个元素
it.next(); // 通过迭代器获取集合的下一个元素
增强for
for(String item: col){
    sout(item);
}
泛型
  1. 通配符? ArrayList<?> arr = new ArrayList<>()
    1. 上限 ? extends E ,使用泛型只能是E类型的子类或者本身
    2. 下限 ? super E ,使用泛型只能是E类型的父类或者本身
数据结构
  1. 栈(先进后出)
  2. 队列 (先进先出)
  3. 数组(查询快,增删慢)
  4. 链表(查询慢,增删快)
  5. 红黑树
List
  1. 有序
  2. 实现类
    1. ArrayList (查询快,增删慢)
    2. LinkedList(查询快,增删慢)
// 使用LinkedList特有方法,不能使用多态
LinkedList<String> link = new LinkedList<>();
link.addFirst("a"); // 将元素插入到列表的开头,等同于push()
link.addLast("b"); // 将元素插入的集合的末尾,等同于add()
link.getFirst(); // 获取集合的第一个元素
link.getLast(); // 获取集合的最后一个元素
link.clear(); // 清空集合
link.isEmpty(); // 判断列表是否为空
link.removeFirst(); // 移除集合的第一个元素,等同于pop()
link.removeLast(); // 移除集合的最后一个元素
Set集合
  1. 是一个接口
  2. 不包含重复元素
  3. 没有索引
  4. 实现类
    1. HashSet
      1. 无序集合
      2. 底层是存储的是一个哈希表
      3. 数据存储结构:数组+链表/红黑树
    2. LinkedHash
      1. 继承HashSet
Set<Integer> hash = new HashSet<>();
hash.add(1); // 添加元素
Iteator it = hash.iterator(); // 迭代器可以遍历集合
while(it.hasNext()){
    sout(it.next());
}
Map集合
  1. 键值对
HashMap
Map<String,String> hm = new HashMap<>();
hm.put("key","value"); // 将指定键值对添加到map中
hm.remove("key"); // 将指定的建从map中移除
hm.get("key"); // 获取指定键的值
hm.containsKey("key"); // 判断是否包含指定键的值
ArrayList list = hm.keySet(); // 获取map中的所有的key集合,然后通过遍历和get("key"),遍历map集合
HashTable
  1. 键值对都不能为null
  2. 单线程
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值