zoukankan      html  css  js  c++  java
  • 13.集合

    1. 集合概述

    可以储存任意长度,任意引用类型数据的容器

    2. 集合框架
    1. Collection接口

      List、Set的父接口,无序,可重复

      常用方法

      1. int size(); // 获取集合中对象的个数
      2. boolean isEmpty(); // 判断集合是否为空
      3. boolean contains(Object o); // 判断某元素是否存在
      4. Iterator<E> iterator(); // 迭代器支持遍历
      5. boolean add(E e); // 添加
      6. boolean remove(Object o); // 删除
      7. void clear(); // 清空
      
    2. List接口

      有序,可重复

      常用方法

      1. void add(int index, E element); // 按照索引添加
      2. E remove(int index); // 按照索引删除 
      3. E set(int index, E element); // 修改元素 只有在有泛型时才能调用
      4. E remove(int index); // 删除元素
      5. int indexOf(Object o); // 获取指定元素的下标
      6. int lastIndexOf(Object o); // 获取指定元素最后一次出现的下标
      
    3. Set接口

      无序,不重复

    4. Map接口

      Map接口与Collection接口无关

      键值对唯一,键 值都无序,值可重复,键不可重复

      常用方法

      1. boolean containsKey(Object key); // 判断是否存在某值
      2. boolean containsValue(Object value); // 判断是否存在某键
      3. V get(Object key); // 通过键获取值
      4. V put(K key, V value); // 添加键值对
      5. V remove(Object key); //删除键
      6. Set<K> keySet(); // 获取所有的键 存入并返回一个Set集合
      7. Collection<V> values(); // 获取所有的值,存入并返回一个集合
      
    5. 实现类

      1. List:ArrayList,LinkedList,Vector

      ArrayList:数组集合,遍历速度快,但是随机插入或删除数据操作复杂,线程不安全

      Vector:数组集合,速度慢,线程安全,随机插入或删除操作复杂

      LinkedList:链表集合,遍历速度慢,随机插入或删除操作方便

      LinkedList新增方法

      1. addFirst(Object) // 头部添加
      2. addLast(Object) // 尾部添加
      3. removeFrist(Object) // 头部删除
      4. removeLast(Object) // 尾部删除
      5. getFrist(Object) // 返回链表头
      
    6. getLast(Object) // 返回链表尾

      
      
      2. Set:HashSet,TreeSet
      
         1. HashSet可以存入null
      
         2. TreeSet需要排序
      
            1. ````java
               // 自然排序
               1. 实体类实现Comparable
               2. 重写compareTo方法 负数倒序,正数正序
      
        2. ````java
           // 排序器排序
           1. 创建排序器类 实现Comparator接口
           2. 重写compare方法
           ````
      
        > List,Collections中的sort方法也可以用来排序,比较方便
      
    7. Map:HashMap,TreeMap,Hashtable

      1. HashMap 键,值 无序,键值对唯一,键不可重复,值可以重复,线程不安全,可以存null
      2. Hashtable 线程安全,不可以存null
    8. 算法类Collections

      java.util.Collections有许多实用的方法

    9. 集合泛型

      JDK5中提出泛型

      优点:提高代码安全性

    10. Queue类

      队列,先进先出,它的实现类有LinedList

      抛出异常 返回特殊值
      插入 add(e) offer(e)
      移除 remove() poll()
      检查 element() peek()
    11. Stack类

      public class Stack  extends Vector{}
      

      Stack 类表示后进先出(LIFO)的对象堆栈。它通过五个操作对类 Vector 进行了扩展 ,允许将向量视为堆栈。它提供了通常的 push 和 pop 操作

    1. Vector初始容量10,2倍扩容
    2. ArrayList初始容量10,1.5倍扩容
    3. String,包装类都重写了compareTo方法
    4. HashMap初始容量16,满75%自动扩容2倍
    5. Tree有关的集合都不能存null,Hashtable安全性问题不能存null
    
  • 相关阅读:
    RfcDestinationManager.UnregisterDestinationConfiguration时报错cannot unregister the given destination configuration
    SVN文件自动加锁-Win7
    linux 命令详解 sort
    Tensorflow的采样方法:candidate sampling(zhuan)
    (转载)机器学习中的目标函数、损失函数、代价函数有什么区别
    tensorflow dropout
    textcnn
    tensorflow学习笔记(三十九):双向rnn
    sklearn one_hot 操作
    sklearn 划分数据集。
  • 原文地址:https://www.cnblogs.com/forelim/p/14766287.html
Copyright © 2011-2022 走看看