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学习笔记模版】 Java实习工程师在学习过程中,会涉及到许多关键知识点,尤其是在企业级开发的场景下。从给出的四天学习笔记来看,实习生正在逐步掌握Java Web开发的基础和核心技能。以下是对这些知识点的详细...
Java是世界上最流行的编程语言之一,...以上就是“达内Core Java学习笔记”中涉及的主要知识点。通过深入学习和实践,初学者可以逐步建立起坚实的Java编程基础,并为进一步学习Java的高级特性和框架打下坚实的基础。
《良葛格Java学习笔记(完整版)》是一份全面且深入的Java编程教程,适合不同层次的Java学习者,无论你是初学者还是有经验的开发者,都能从中受益。这份笔记详细介绍了Java语言的核心概念、语法特性以及实际开发中的...
在深入探讨JAVA学习笔记之前,我们首先理解一下JAVA这一编程语言的重要性。JAVA,由Sun Microsystems公司(现已被Oracle收购)于1995年推出,是一种面向对象的、跨平台的编程语言,以其“一次编写,到处运行”的特性...
Java学习笔记源代码是针对清华大学出版的《Java学习笔记》一书,配套的 JDK1.5 版本的源码。这些源代码旨在帮助读者深入理解Java编程语言,通过实践来加强理论学习,提高编程技能。Java作为一种广泛使用的高级编程...
### Java学习笔记知识点总结 #### 第一章:Java语言入门 - **1.1 Java的诞生** Java由Sun Microsystems公司于1995年推出的一种可移植、面向对象的编程语言。最初的设计目标是为消费电子产品提供一种通用编程语言...
【良葛格Java学习笔记】 本笔记主要涵盖了Java编程语言的核心概念和技术,旨在帮助初学者以及有一定基础的开发者深入理解并掌握Java。Java作为一种广泛应用于企业级应用开发、移动开发(尤其是Android)以及大数据...
这份"JAVA学习笔记和例子程序值得看看"的压缩包显然包含了作者在深入学习Java过程中的重要发现和理解,以及帮助深化概念理解的示例程序。让我们来详细探讨一下可能包含的知识点。 1. **基础语法**:Java的基础包括...
Java容器学习笔记: 容器概览, 容器中的设计模式, 容器源码分析 - List, 容器源码分析 - Map, 容器源码分析 - 并发容 Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,...
Java JDK 6学习笔记是为Java初学者量身定制的一份宝贵资料,它涵盖了Java编程的基础概念、语法以及核心特性。这份PPT简体版旨在帮助读者快速掌握Java开发的基本技能,逐步成为一名合格的Java程序员。 Java JDK...
JAVA学习笔记最新ppt版1 JAVA 是一种面向对象的程序语言,具有更高的跨平台可能性。它是 Sun 公司 GreenProject 中撰写 Star7 应用程序的一个程序语言,由 James Gosling 创造。Java 的特性包括简单、面向对象、...
JAVA学习笔记.pdf JAVA学习笔记.pdf 中讲解了JAVA语言的基础知识,包括类的基本知识、成员变量、成员方法、类的实例、内部类、匿名类、接口、包等。 类的基本知识 在JAVA中,类是对象的蓝图,类的声明语法为:...
【标题】"良葛格Java学习笔记html.rar"是一份以HTML格式编写的Java学习资料,由知名在线教育人物“良葛格”所创建。这份压缩包文件包含了他对Java编程语言深入浅出的讲解,旨在帮助学习者提高Java编程技能。 【描述...
"Java 学习笔记" Java 是一种面向对象的程序语言,具有跨平台的可能性。Java 的特性包括简单、面向对象、网络、解译、坚固、安全、可携和高效能。Java 平台包括 Java SE、Java EE 和 Java ME, Java SE 是 Java ...
本篇笔记旨在为初学者提供一个全面的Java学习指南,涵盖了语言的基础概念和技术。 1. **面向对象编程三大原则** - **封装**:封装是将数据和操作这些数据的方法绑定在一起,形成一个独立的单元,对外部世界隐藏...
这份“java学习笔记总结”涵盖了作者在深入学习Java过程中积累的知识点和实践经验,旨在帮助读者理解和掌握Java的核心概念。 首先,Java的基础部分包括语法、变量、数据类型、运算符和流程控制。Java支持八种基本...
10. **Java并发编程**:包括线程池、锁机制(如synchronized、ReentrantLock)、并发容器(如ConcurrentHashMap、CopyOnWriteArrayList)以及并发工具类(如CountDownLatch、CyclicBarrier)。 这些是Java基础知识...
Java开发学习笔记主要针对的是初学者,旨在帮助他们掌握Java编程的基础知识。下面将详细讲解Java开发中的核心概念和步骤。 一、Java环境变量设置 在开始Java编程之前,我们需要安装Java Development Kit (JDK)并...