本篇根据《Java编程思想》 第11章 持有对象 整理,总结Java容器框架中常用集合类及接口的特点及使用场景。

(一)总结

1)数组将数字与对象联系起来;可以保存基本类型的数据;一旦生成,容量不能改变;

2)Collection保存单一的元素,Map保存相关联的键值对;不能持有基本类型;添加更多元素时,自动调整尺寸;

3)List接口继承自Connection接口,同数组一样,也建立数字索引与对象的关联,数组和List都是排好序的容器;ArrayList和LinkedList都实现List接口,要进行大量随机访问,就使用ArrayList;如果经常从表中间插入或删除元素,则应该使用LinkedList;

4) Queue接口声明了在队列中插入和移除元素的方法,队列的规则依赖于具体实现;先进先出描述了最典型的队列规则,下一个元素应该是等待时间最长的元素,LinkedList实现了Queue接口;优先级队列声明下一个弹出元素是最需要的元素,PriorityQueue实现了Queue接口;

5)Map是一种将对象(而非数字)与对象相关联的设计。HashMap通过散列码实现Map接口,持有的键值对是无序的,用来快速访问;TreeMap通过红黑树,保持“键”始终处于排序状态;LinkedHashMap保持了元素的插入顺序,也通过散列码提供快速访问能力;

6)Set不接受重复元素。HashSet通过散列码,提供最快的查询速度;TreeSet保持元素处于排序状态;LinkedHashSet以插入顺序保存元素;

7)Iterable接口提供了返回Iterator接口的方法,Connection接口继承了Iterable接口;Iterator接口提供了hasNext、next方法和可选的remove方法;

8)ListIterator接口继承自Iterator接口,增加了反向遍历方法和可选的set方法;List接口提供了返回ListIterator接口的方法;

9)Comparable接口提供了int compareTo(T o)方法;Comparator接口提供了int compare(T o1,T o2)方法。

10)Arrays工具类,包含用来操作数组(比如排序和搜索)的各种方法。

11)Connections工具类,完全由在 Collection 上进行操作或返回 Collection 的静态方法组成。

(二)注意事项

1)Arrays的asList方法:

public static <T> List<T> asList(T... a)
返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直写”到数组。)此方法同 Collection.toArray 一起,充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。返回的列表是可序列化的,并且实现了 RandomAccess

此方法还提供了一个创建固定长度的列表的便捷方法,该列表被初始化为包含多个元素:

     List stooges = Arrays.asList("Larry", "Moe", "Curly");

Java容器框架总结(一)的更多相关文章

  1. java容器的理解(collection)

    容器类(Conllection)对于一个开发者来说是最强大的工具之一,可以大幅提高编程能力.容器是一个将多个元素组合到一个单元的对象,是代表一组对象的对象,容器中的对象成为它的元素. 容器适用于处理各 ...

  2. java容器基础

    总结一下学过的java容器知识. 一.java容器框架 由于之前学习的java容器类比较混乱,先简单的整理一下java集合框架. 首先,像这种图,网上到处都是,因为这个也算比较准确吧,我也懒得自己画了 ...

  3. Java——容器类库框架浅析

    前言 通常,我们总是在程序运行过程中才获得一些条件去创建对象,这些动态创建的对象就需要使用一些方式去保存.我们可以使用数组去存储,但是需要注意数组的尺寸一旦定义便不可修改,而我们并不知道程序在运行过程 ...

  4. java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类

    本文关键词: java集合框架  框架设计理念  容器 继承层级结构 继承图 集合框架中的抽象类  主要的实现类 实现类特性   集合框架分类 集合框架并发包 并发实现类 什么是容器? 由一个或多个确 ...

  5. 从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射

    从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Collection 接口又有 3 ...

  6. Java集合框架List,Map,Set等全面介绍

    Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I]   +--java.util.ArrayList [C]   +- ...

  7. Java三大框架 介绍

    三大框架:Struts+hibernate+spring Java三大框架主要用来做WEN应用. Struts主要负责表示层的显示 Spring利用它的IOC和AOP来处理控制业务(负责对数据库的操作 ...

  8. 22章、Java集合框架习题

    1.描述Java集合框架.列出接口.便利抽象类和具体类. Java集合框架支持2种容器:(1) 集合(Collection),存储元素集合 (2)图(Map),存储键值对.

  9. java三大框架

    1定义 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰.可复用性好.维护方便的Web应用程序.其中使用Struts作为系统的整体基础 ...

随机推荐

  1. pandas读取Excel文件

    In [7]: import pandas as pd filname = 'ch02数据导入\\student.xlsx' data = pd.read_excel(filname) data Ou ...

  2. python笔记(3)---列表

    lst = ["bob","jack","马云","马化腾","王健林"] del lst[1:3] ...

  3. springcloud 配置actuator

    pom.xml <!--Spring Boot Actuator,感应服务端变化--> <dependency> <groupId>org.springframew ...

  4. Django【第10篇】:Django之分页初级版本

    分页和中间件 一.分页 Django的分页器(paginator) view.py from django.shortcuts import render,HttpResponse # Create ...

  5. 【NOIP2016A组模拟7.13】亚瑟王之宫

    题目 分析 我们定义\(dis_{x,y,x1,y2}\)表示\((x,y)\)到\((x1,y1)\)的距离.这个用spfa求. 接着,枚举两个集合点\((x,y).(x1,y1)\), 得出这两个 ...

  6. 使用distinct消除重复记录的同时又能选取多个字段值

    需求是:我要消除name字段值重复的记录,同时又要得到id字段的值,其中id是自增字段. select distinct name from t1 能消除重复记录,但只能取一个字段,现在要同时取id, ...

  7. STM32内部硬核的认识

    STM32内部含有硬核,对于一些协议(例如:UART,SPI,IIC,CRC等)我们只要调用硬核就可以了,同时我们也可以自己写通信协议. 这些硬核最终肯定是要有引脚输出的,这就是为什么STM32的引脚 ...

  8. 在asp.net 中怎样上传文件夹

    以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备文件上传的API #region 文件上传  ...

  9. [转载]Android: 如何实现ScrollView中含有ListView?

    原文地址:Android: 如何实现ScrollView中含有ListView?作者:mailofzxf ListView本身就含有ScrollView,因此把ListView放到ScrollView ...

  10. RedisTemplate访问Redis数据结构(三)——Hash

    HashOperations提供一系列方法操作hash.首先初始化spring工厂获得redisTemplate和opsForHash private RedisTemplate<String, ...