Java数据存储:集合框架和泛型

在这里插入图片描述

  1. 集合接口Collection (List ,Set),Map
    1. 面试题:java 三大集合接口有哪些??
      ①List Set Map
    2. Collection
      存放一组 无序,不唯一的对象集合
    3. List
      存在一组有序(插入的顺序),不唯一的对象集合
    4. Set
      存放一组无序,唯一的对象集合
    5. Map
      存放一组键值对集合(key ,value)
      Key 唯一 value 不唯一
  2. 集合实现类
    1. List
      ①面试题:ArrayList /LinkedList 异同
      1. 存储结构:ArrayList 是基于动态数组,LinkedList 基于链表

      2. ArrayList 遍历,查询的效率高

      3. LinkedList 插入和删除效率高
        ②ArrayList

      4. 实现的是可变的数组

      5. 遍历和随机访问的效率高

      6. 常用方法
        Collection 方法

        • add(Object obj) 添加
        • remove(Object obj) 删除
        • contains(Object obj) 是否包含
        • clear() 清空
        • isEmpty() 判断是否为空
        • iterator() 迭代器
        • toArray() 转换为数组
        • size() 长度
          • 数组长度.length属性

        ArrayList 特有的方法

        • add(int indec, Object obj) 添加
        • remove(int index) 删除
        • get(int index) 获取

        LinkedList
        链表的存储方式
        插入和删除的效率高
        常用特有方法

        • addFirst(Object obj)
        • addLast(Object obj)
          注意事项:如果在此方法之后继续添加,那么最后一条就变成了最新添加的
        • removeFirst()
        • removeLast()
        • getFirst()
        • getLast()
  3. HashCode
    1. 每个对象都有一个hashCode
    2. 同一个hashCode 可以对应不同的对象
    3. 不同的HashCode 肯定是不同的对象
    4. 不同的对象也可能是同一个hashCode
  4. Set -HashSet
    1. 面试题:去重原理
      ①先判断hashCode() 是否相同,不同添加
      ②HashCoce() 相同的情况,判断equals()
  5. Map- HashMap
    1. 常用方法
      ①put(key ,value);
      ②get(key)
      ③keyset()
      ④values()
      ⑤entrySet()
      ⑥size()
      ⑦containsKey() - 返回Map.Entry
      (2)Map.Entry (键值对象)
  6. 泛型
    (1)规定集合的类型
HashSet<数据类型> lists = new HashSet<数据类型>();
ArrayList<数据类型> lists = new ArrayList<数据类型>();
LinkedList<数据类型> lists = new LinkedList<数据类型>();
HashMap<数据类型 ,数据类型> lists = new HashMap<数据类型 ,数据类型>();
  1. 集合的四种遍历方法
    1. 普通for – HashSet不能用这个方法

for (int i = 0; i < lists.size(); i++)

2. 增强型的for 
for (Object obj :lists)
3. 数组 
Object[] news = newsList.toArray();
		for (int i = 0; i < news.length; i++) 
4.	迭代器
Iterator iterator = newsList.iterator();
		while (iterator.hasNext())
		System.out.println(iterator.next());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值