首页 > 编程语言 >java-集合

java-集合

时间:2022-08-19 15:44:22浏览次数:54  
标签:存储 java 元素 索引 键值 集合 public

目录

集合的分类:

  1. 单列集合:只能存储一列数据的集合
  2. 双列集合:有两列可以存储数据,是key-value键值对进行存储

集合的框架:
image

单列集合

主要是Collection集合

List集合的特点:

  1. List集合存储元素可以重复
  2. 存储的元素顺序就是写入元素的顺序。
  3. 有索引,可以使用普通for循环进行遍历。

List集合的方法:

  1. public void add(int index,E element) 在此集合中的指定位置插入指定的元素
  2. public E remove(int index) 删除指定索引处的元素,返回被删除的元素
  3. public E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
  4. public E get(int index) 返回指定索引处的元素

List集合的子实现类:
主要有包含ArrayList集合,LinkedList集合,vector集合

ArrayList集合:底层是数组结构,所以查询快,增加删减较慢。线程不安全,效率高。
LinkedList集合:底层是链表,所以增加和删除快,删减慢。
vector集合:底层也是数组结构,但是查询慢,增加和删除快,线程安全,效率低。

LinkedList集合特有的方法:

  1. public void addFirst(E e) 在该列表开头插入指定的元素
  2. public void addLast(E e) 将指定的元素追加到此列表的末尾
  3. public E getFirst() 返回此列表中的第一个元素
  4. public E getLast() 返回此列表中的最后一个元素
  5. public E removeFirst() 从此列表中删除并返回第一个元素
  6. public E removeLast() 从此列表中删除并返回最后一个元素

set集合的特点:

  1. 存储的元素是没有顺序的
  2. 存储的元素不可以重复
  3. 没有索引,不可以使用普通for循环遍历

set集合的子实现类:
主要包含有HashSet集合,TreeSet集合

HashSet集合:底层是HashMap集合,存储元素无序,元素不可以重复,没有索引,不能使用普通for循环遍历。
TreeSet集合:底层是TreeMap集合,不能存储重复的元素,没有索引,将元素按照规则进行排序(使用Comparable接口或者Comparator)

双列集合

主要是Map集合

Map集合的特点:

  1. 双列集合,一个键对应一个值
  2. 键不可以重复,但是值可以重复

Map集合的方法:

  1. V put(K key,V value) 添加元素
  2. V remove(Object key) 根据键删除键值对元素
  3. void clear() 移除所有的键值对元素
  4. boolean isEmpty() 判断集合是否为空
  5. int size() 集合的长度,也就是集合中键值对的个数
  6. V get(Object key) 根据键获取值
  7. Set keySet() 获取所有键的集合
  8. Collection values() 获取所有值的集合
  9. Set<Map.Entry<K,V>> entrySet() 获取所有键值对对象的集合

HashMap集合的特点:

  1. 底层是哈希表结构(JDK1.8以前是数组+链表,JDK1.8以后是数组+链表+二叉树)
  2. 依赖重写hashcode和equals方法保证元素的唯一性
  3. 如果键存储的是自定义类型的对象,需要重写hashcode和equals方法。

TreeMap集合的特点:

  1. TreeMap底层是红黑树结构
  2. 依赖自然排序或者比较器排序,对键进行排序
  3. 如果键存储的是自定义对象,需要实现Comparable接口或者在创建TreeMap对象时候给出比较器排序规则

标签:存储,java,元素,索引,键值,集合,public
From: https://www.cnblogs.com/lihaha520-1314/p/16588826.html

相关文章

  • Java8 Lamba Steam操作
    (1)、创建Stream:一个数据源(如:集合、数组),获取一个流(2)、中间操作:一个中间操作链,对数据源的数据进行处理(3)、终止操作(终端操作):一个终止操作,执行中间操作链,并产生结果1、生......
  • 【JAVA】Jdbctemplate中query、queryForObject、queryForList、queryForMap方法使用
    使用NamedParameterJdbcTemplate进行数据库操作时,常用query、queryForObject、queryForList、queryForMap方法说明记录 【query方法】返回结果是list,且list中元素必须是......
  • Java操作MongoDB采用MongoRepository仓库进行条件查询
    1.实体类1publicclassPersonimplementsSerializable{2privatestaticfinallongserialVersionUID=-8288372263345673367L;3privateStringid;4......
  • java实现多线程的四种方式
    实现多线程的三种方式:继承Thread类、实现Runnable接口、使用Callable和Future接口、使用线程池创建线程一、继承Thread类,重写run方法publicclassMyThreadextendsTh......
  • 第一个Java程序
    publicclassHelloWorld{publicstaticvoidmain(String[]args){//main方法是一个程序的主入口是不可缺少的//TODO自动生成的方法存根......
  • Java实现多线程的四种方式
    java中实现多线程主要有四种方式:继承Thread类一,继承Thread类,重写run方法publicclassThreadTest{//主线程publicstaticvoidmain(String[]args){......
  • java:关于打包时的资源获取问题
    我们有时会遇上打包后,图片资源不显示等问题,我总结了以下两个方法:1.将资源文件放在外部,不打入包中,此时直接用相对路径或绝对路径就可以获取资源文件;比如将资源文件与打好的......
  • java:菜单的使用
    1.JMenuBar菜单条2.JMenu菜单3.JMenuItem菜单项菜单条包含菜单,每个菜单有包含一些菜单项。菜单也可以修改布局,默认是流式布局,可自定义。直接上一段代码演示:1impor......
  • Java流程控制
    Java流程控制顺序结构Java的基本结构就是顺序结构,除非特别指明,否则就是按照顺序一句一句执行。顺序结构是最简单的算法结构语句与语句之间,框与框之间是按从上到......
  • JavaScript基础回顾
    变量声明var伪全局变量const常量(块级作用域)let块级作用域变量运算符及表达式算术运算 +-*/%++--逻辑运算&&(同true取最后一个false取第一个) ||(有true取......