1,简述容器
Set : 元素必须唯一
ArrayList 和 LinkedList
ArrayList因为是一个有序数组的List 所以访问比较快,但是插入和删除比较慢,LinkedList因为是一个链表形式的,可以从中间断开再接上,所以LinkedList插入和删除数据开销不大,但是随机访问比较慢。要了解比较透彻,可以查看《JAVA数据结构和算法》第二版,讲的比较好!
另外数据结构里其它方面,我贴一下我的笔记总结:
数据结构 优点 缺点 |
|
|
|
数组 插入快,如果知道下标,可以非常快地存取 查找慢,删除慢,大小固定 |
|
有序数组 比无序数组查找 删除和插入慢,大小固定 |
|
栈 提供后进先出的存 存取其它项很慢 |
|
队列 提供先进先出的存取方 存取其它项很慢 |
|
链表 插入快,删除 查找慢 |
|
二叉树 查,插,删都快(如果树保持平衡) 删除算法复杂 |
|
红-黑树 查插删都快。树总是平衡 算法复杂 |
|
2-3-4树 查插删都快,树总是平衡的,类似的树对磁盘存储有用 算法复杂 |
|
哈希表 如果知道关键字,则存取极快,插入快。 删除慢堆 插入删除快,对最大数据项的存取很快 对其它数据项存取慢 |
|
图 对现实世界建 有些算法慢且复杂 |
下面是关于在SWT的B/S结构项目的List和Map的具体应用,心得体会:
List listStatType = QueryHandle.findByProperty(Codedict.class,
CodedictDomain.codeType, "ECM_LONG_TERM_STATE");
final Map<String, String> mapStatType = new HashMap<String, String>();
for (int i = 0; i < listStatType.size(); i++) {
Codedict codedict = (Codedict) listStatType.get(i);
if (UserInfo.getInstance().getDefaultLang().equals(Locale.CHINA)
|| UserInfo.getInstance().getDefaultLang().equals(
Locale.CHINESE)) {
mapStatType.put(codedict.getCodeValue(), codedict
.getDisplayValueCn());
} else {
mapStatType.put(codedict.getCodeValue(), codedict
.getDisplayValue());
}
}
上面的代码中:先是用List列出词汇表中的相关数据,通过存储过程访问,然后在词汇表中,数据是以(Key,Value)方式对应的,所以用Map访问,一个Key对应一个Value。Key是对应数据库中的字段,Value是词汇表中相应字段对应的中文字母,这样通过Map我们就能达到国际化的效果。注意,Map中的key,Value可以灵活变的,我这里因为一个是数据库字段,一个是国际化的,所以用Map(String,String)..很多地方是列表,所以Key 可以是String,int,Object;而Value也可以是String,int Object等等形式,比如可以定义Map(int,Object),Map(int,String)等。要看具体需求!
总结:对于容器的使用,除了看一些基本知识外,还要从数据结构出发,了解具体数据是怎么在容器中存储的,然后在具体项目或例子中应用的时候,自己慢慢体会,去思考数据是如何存储的,数据的走向!等一一模清楚之后,才能够达到运用的效果!不然永远是云里雾里!
分享到:
相关推荐
Java 容器(集合)学习笔记 Java 中的容器(集合)是一种组织和管理数据的方式,通过“容器”可以容纳和管理数据。数组是最基本的容器,可以存储多个对象,但它有很多缺点,如长度必须在初始化时指定,数组采用连续...
Java容器学习笔记: 容器概览, 容器中的设计模式, 容器源码分析 - List, 容器源码分析 - Map, 容器源码分析 - 并发容 Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,...
JAVA学习笔记最新ppt版1 JAVA 是一种面向对象的程序语言,具有更高的跨平台可能性。它是 Sun 公司 GreenProject 中撰写 Star7 应用程序的一个程序语言,由 James Gosling 创造。Java 的特性包括简单、面向对象、...
JAVA学习笔记.pdf JAVA学习笔记.pdf 中讲解了JAVA语言的基础知识,包括类的基本知识、成员变量、成员方法、类的实例、内部类、匿名类、接口、包等。 类的基本知识 在JAVA中,类是对象的蓝图,类的声明语法为:...
自己在java学习过程中的笔记,从最基础的创建java环境,java的基础知识,java变量的内存存储过程,到容器,异常,多线程等都有详尽涉及。 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里...
Docker容器学习笔记全(狂神说Java).pdf
Docker容器学习笔记(狂神说Java) 从Docker的历史到Docker的部署使用 通俗易懂 配合B站视频资料
7.Web容器是Servlet/JSP唯一认识的HTTP服务器,是使用Java撰写的应用程序,运行于JVM之上。 8.JVM让Java可以跨平台,不同的系统平台有不同的JVM,它们都认识.class文件。Java编译语言将Java代码编译成.class文件...
Java学习笔记 入门准备 接触物件 物件向导 资源管理 物件容器 输入输出 執行緒 反射 metadata 资料库 拾遗补缺 视窗程式 参考资料
"Java 学习笔记" Java 是一种广泛应用于软件开发的高级编程语言。下面是根据给定的文件内容生成的相关知识点: 一、 Java 技术基础 1.1 编程语言 Java 是一种面向对象的编程语言,具有跨平台、自动垃圾回收、多...
这是我经过半年的认真研读《thinking in java》这本书的读书笔记,涉及到从容器一章开始的所有后续章节的内容,只有把握我笔记中的内容我想你就差不多弄懂了<thinking in java>这本书的精华
狂神说Docker容器学习笔记全
学习docker时看到的学习笔记
最多到二维数组(学习容器后,我们一般使用容器,二维数组用的都很少) 5. 数组存储表格数据 表格数据模型是计算机世界最普遍的模型,可以这么说,大家在互联网上看到的所有数据本质上都是“表格”,无非是表格...
Java 并发学习笔记: 进程和线程, 并发理论, 并发关键字, Lock 体系, 原子操作类, 发容器 & 并发工具, 线程池, 并发实践 Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的...
从Docker的历史到Docker的部署使用
狂神说docker容器视频配套完整笔记
{5.2.1}将浮点数四舍五入到指定精度}{98}{subsection.5.2.1} {6}Exception}{99}{chapter.6} {6.1}\ttfamily try-catch}{99}{section.6.1} {6.2}\ttfamily finally}{100}{section.6.2} {6.3}\ttfamily throws}{...
我的Java学习笔记 初步打造在线最佳的Java学习笔记,笔记内容主要是对一些基础特性和编程细节进行总结整理,适合了解Java基础语法,想进一步深入学习的人 含博客讲解和二进制实例,采用maven构建,分模块学习,涉及...