集合框架

集合框架

集合:对象的容器,存储对象的对象,可代替数组.
  • Collection 父接口

    • 特点:代表一组任意类型的对象,无序,无下标.
    • 方法:Collection接口是List和Set接口的父接口
      • boolean add(Object obj) //添加一个对象
      • void clear() //清空此 集合中的所有对象
      • boolean contains(Object o) //检查此集合中是否包含对象
      • boolean containsAll(object o) //检查此集合中是否包含o中所有的对象
      • boolean isEmty() //判断此集合是否为空
      • boolean remove(Object o) //在此集合中移除o对象
      • int size() //返回此集合中的元素个数
      • Object[] toArray() //将此集合转换成数组
  • List集合

    • 特点:存储Object类型的对象,有序,有下标,元素可以重复.下表范围 :0~集合有效数-1(size-1)
    • 方法:List集合 中添加一些方法.

      • void add(int index,Collection c) //将c中所有的元素存储在指定下标index位置
      • Object get (int index) //返回集合中指定的位置
      • Object remove (int index) // 移除index位置上的元素,返回删除的对象
      • Object set(int index,Object element) //替换index位置上的值,返回修改前的元素
      • List subList(int fromIndex,int toIndex) //返回集合中指定的元素
      • int indexOf(Object o) //返回对象第一次出现的下标,如果没有返回-1
      • int lastIndex(Object o) //返回对象最后一次的下标,如果没有返回-1
    • 实现类: ArrayList,底层数组实现

      • ArrayList :
        • 底层数组实现,查询块,增删慢.jdk1.2 后,线程不安全,运行效率快
      • Vector:
        • 底层用 数组实现,查询块,增删慢,1.0 ,线程安全,运行效率慢
      • LinkedList:
        • 底层使用链表实现,增删快,查询慢
    • 遍历方式,forEach遍历
    • 泛型集合:参数化类型,类型安全的集合,强制集合元素类型一致.
      • 泛型类:
        • 特点:
          • 编译即可检查,而非运行时抛出异常.
          • 访问时,不必类型转换(拆箱).
          • 不同泛型之间引用不能互相赋值,泛型不存在多态.
        • 语法: class 类名<泛型类型标识符1,泛型类型标识符2>{
          泛型类型标识符1 变量名;
          }
        • 泛型对象: 类名<具体类型> 对象名 = new 类名<具体类型>();
        • 泛型接口:
          • interface 接口名<泛型标识>{}
interface MyInter<T>{
                    T getvar();
                }
  • 实现类:
- class Class implements MyInter<String>{
                    public String getVar(){
                        return "nice";
                    }
                }
                - class classD<T> implements MyInter<T>{
                    T value;
                    public T getVar(){
                        return value;
                    }
                }
  • Colletions工具类
    - public static void reverse(List list): 对集合元素倒置
    - public static shuffle(List list): 对集合元素随机显示
    - public static void sort(List list): 对集合元素排序
    - 几何元素是自定义的对象,必须实现java,util.Comparable接口,并实现comparaTo方法.

    • Set集合
    • 特点:无序,无下标,元素不可重复.
    • 方法:全部继承自Collection中的方法.
    • 实现类:HashSet.
    • 遍历方式: forEach遍历.
    • HashSet 添加元素原理

      • 将自定义类型对象存入HashSet时,无法保证元素不重复.
      • 当存入元素的哈希码相同时,会调用equals进行确认,如果为true,则拒绝后置存入.
      • 覆盖equals方法,保证相同对象的结果为true.
      • 为触发equals方法的调用,,重写hashCode方法:
        • 确保相同的对象返回相同的哈希码值.
        • 尽量保证不同对象返回不同的哈希码.
    • TreeSet实现类

      • 基于排列顺序实现元素不重复.
      • SortedSet接口是Set子接口:
      • 特点:存储Object对象,无序,无下标,元素不重复.可对集合元素自动排序.
      • 实现类: TreeSet
      • 元素对象的类型必须实现Comparable接口,指定排序规则.
      • 通过CompareTo方法确定是否为重复元素.
      • 遍历方式:迭代遍历,forEach遍历
      • 注意:TreeSet通过CompareTo方法返回值是否为”0”确定重复元素.
    • Map体系集合

    • 特点:

      • 用于存储任意键值对(Key-Value)
      • 键:无序,无下标,不允许重复(唯一)
      • 值: 无序,无下标,允许重复
    • Map父接口

      • 特点:存储一对数据(Key-Value),无序,无下标,键不可重复,值可重复.
      • 方法:
        • V put(K key,V value) //将对象存入到集合中,关联键值.key重复则覆盖原值.
        • Object get(Object key) //根据键获取对应的值.
        • Set //返回所有key
        • Collection values() //返回包含所有的Collection集合.
        • Set<Map.Entry<K,V>> //键值匹配的Set集合.
    • Map集合的实现类

      • HashMap:
        • JDK1.2版本,线程不安全,运行效率快;允许用null 作用为key或是value
      • Hashtable:
        • JDK1.0 ,线程安全,运行效率慢,不允许null作为key或是value
      • Properties:
        • Hashtable的子类,要求key和value都是String.通常用于配置文件的读取.
      • TreeMap:
        • 实现了SortedMap接口(是Map的子接口),可以对key自动排序.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值