版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java容器类学习心得体会
Java容器类学习心得体会「篇一」
关于Java容器类学习心得体会
1.接口
整个Java容器类的基础是容器接口(例如Collection,Map等接口),而不是
类。使用接口的最大好处在于将容器的实现与容器的接口分开,这就意味着你可以
使用相同的方法访问容器而不用关心容器是由什么样的数据结构实现的。同样,
Iterator接口也使得用户可以使用相同的方法访向不同的容器类。以上这些是通
用算法的基础。China
1.1Collection接口
Collection接口有如下基本方法:
booleanadd(Objectobj):如果添加对象后,集合确实发生了变化,则返回
true;否则返回false
Iteratoriterator:返回一个实现了Iterator接口的对象
此外,还有
inisizebooleanisEmpty,booleancontains(Objectobj),voidclear等
许多有用的方法
1.2Map接口
Map用于存放关键字/值对。有如下基本方法:
Objectget(Objectkey)
Objectput(Objectkey,Objectbalue)
SetkeySet
SetentrySet
此外,还有其他有用的方法。
需要注意的是,从表面看它似乎就是一种由键值对构成的集合,但实际上并不
是这样。不过另一方面假如将Map的某一部分看作集合,有时候也还是显得非常方
便的。换言之你可以创建一个集合用它来表达Map的那一部分。综上所述,一个
Map可以返回的东西包括它的键值构成的一个Set、由它的值构成的一个集合或者
由它的键值对构成的一个Seto
1.3Iterator接口
Iterator接口有下面3个基本方法:
Objectnext:返回迭代器刚越过的元素的引用
booleanhasNext:判断容器内是否还有可供访问的元素
voidremove:删除迭代器刚越过的元素
注意:Java中的迭代器与STL中的迭代器在概念上有很重要的区别。在STL
中,迭代器类似于数组的索引,使用这种迭代器可以查看存放在该位置上的.元素
(类似于通过数组索引i来访问c[i]一样)。Java中的迭代器并不这样运行。查看
与位置的变化紧密的结合在一起。每次通过next访问一个元素的同时,迭代相的
位置会自动向前走一步。
这个问题可以这样理解:Java中的迭代器指向的位置并不是元素,而是元素
之间。这样,每次调用next时,迭代器便越过下一个元素,同时返回它刚越过的
那个元素的引用。
根据上面的说明,夕艮容易得出下面的代码是错误的:
it.remove
it.remove
而下面的代码是正确的:
it.remove
it.next
it.remove
迭代器的典型应用
Iteratorit=c.iterator
while(it.hasNext;
Objectobj=it.next
//dosomethingwithobj
)
1.4子接口
1.4.1List接口
List从Collection接口中分立出来是因为List的特点一一有序的集合。这
里指的有序并不是按照大小排好序的(Sorted),而是指集合是可以以确定的顺序访
问的序列。针对List的这个特点,它比Collection接口增加了通过索引进行操作
的方法。例如,add、removeget、set等方法的参数表中都可以加入索引的数
值,从而操作处在索引位置处的元素。
1.4.2Set接口
Set与List的不同,它里面的元素是无序的;所以,不能通过任何索引的方法
来操作Set对象ChinaItPower.ComZKWED
1.4.3Listiterator接口
使用与List的迭代器,比Iterator接口增加了一些方法(例如add等)。此
外,由于List是双向表,所以还增加了Objectpreviousboolean
hasPrevious方法,用法与next和hasNext一样。ChinaItPower.ComZKWED
1.4.4SortedMap接口
包含如下基本方法:
Comparatorcomparator
ObjectfirstKey
ObjectlastKeyChinaItPower.ComZKWED
2.抽象容器类
2.1抽象容器类包括Abstractcollection,AbstractList,AbstractSet等等
ChinaItPower.ComZKWED
2.2为什么要有抽象结合类?
例如Collection接口中定义了许多有用的方法,如果实现Collection接口的
每个类都自行实现这么多的方法,那将是非常麻烦的。为了使实现Collection接
口的类的实现更容易,AbstractCollcction类让一些基本方法(比如add和
iterator)变成了抽象的方法,而利用这些基本方法的其他方法(例如addAU等等)
则具体实现了。ChinaItPower.ComZKWED
3.具体的容器
3.1ArrayList与LinkedList
都是实现了List接口的类,是有序集。List接口支持通过索引的方法来访问
元素,对于这一点,ArrayList没有任何问题;但是对于LinkedList则有很大的问
题,链表本身不应该支持随机存储,但是作为List的一个实现,链表也提供了对
随机访问的支持,但是效率很低。每次通过索引的方法都是进行一次遍历。我认
为,其实就不应该让链表支持随机访问;而Java这样实现我想是因为整个集合框架
的体系,使得链表与数组可以使用同样的方法使用。综上所述,对于LinkedList
最好不使用随机访问,而使用迭代器。ChinaItPower.ComZKWED
3.2TreeSet
3.2.1TreeSet是SortedSet的一个实现。根据数据结构的知识可以知道,树
的效率非常高,而且Java标准库中有TreeSet这样的类,以后应该尽量使用
TreeSet来提高程序的效率。
3.2.2需要注意的是:TreeSet作为有序集,它通过compareTo或者
Comparator来将集合元素排序。任何具有相同比较值的元素(无论它们是否
equals),在TreeSet中都作为同一个元素,从而不能有重复。这样以来,即使是
不同的对象也不能加入到集合中,这一点有时候很不方便。我在编写A*算法时,
不同状态有时候对应着同一个启发函数值,那么这些不同的状态就无法加入到
TreeSet中。ChinaItPower.ComZKWED
3.3HashSet
3.3.1HashSet是非常高效的数据结构,与TreeSet不同,HashSet是比较对
象的equals方法来区分不同的对象。这样只有真正不同的对象才能不被重复的加
入到集合中。
3.3.2需要注意的是:HashSet效率非常高,但是对象的hashCode函数不好
确定。一般默认的对象的hashCode函数是根据对象的内存地址得到的。好的
hashCode函数是HashSet成功运用的关键。ChinaItPower.ComZKWED
4.视图
4.1什么是视图?
对映象类使用keySet方法,仿佛该方法建立了一个新的集合,并将影响的所
有关键字都填入这个集合。实际情况并非如此,对这个集合的任何操作都将反映到
原始的映象对象上。
实际上,keySel返回的是一个实现Sei接口的对象,对该对象的操作就是对
映象的操作。这样的集合成为视图。
4.2视图的应用
4.2.1将现有的容器变为线程安全的容器:使用
Collections,synchronyzedCollection(Collectionc)方法,在SDK文档中该方法
的解释是aReturnsasynchronized(thread-safe)collectionbackedbythe
specifiedcollectionJ,。
4.2.2将现有的容器变为只读的容器:使用
Collections,unmodifiableCollection(Collectionc)方法,在SDK文档中该方法
的解释是“Returnsanunmodifiableviewofthespecifiedcollection.。
4.2.3子范围
4.2.4Arrays类中的asList方法ChinaItPower.ComZKWED
5.通用算法
通用的集合接口带来的一大好处就是可以编写通用算法。可以使用
Collections中的静态通用方法,也可以编写自己的通用方法。
(具体的算法的内容在此略去)ChinaItPower.ComZKWED
总结:千万记住这勺话一一没有最好的容器(数据结构),要根据不同的问题选
择不同的容器,以此来达到功能的要求和效率的最优。
Java容器类学习心得体会「篇二」
在java的海洋中遨游一年的时间,从面向对象的思想到K)流到网络编程,我
不断的接触到java基础知识,在学习过程中不断进步,不断成长。
作为一名软件工程的学生,学习java是我学习的重中之重,在长达一年的学
习过程中,我也对java也有新的认识。
在学习java时,会问问自己为什么要学习java?在当今时代,Java仍然是世
界上最受欢迎的编程语言之一,有无限多种方法使用Java。据xx年数据显示,
Java被评为最受欢迎的编程语言之一;最新的一些报告证明,Java程序员是业内
薪资最高的程序员之一。根据全球数字化业务媒体机构的分析,拥有Java技能有
利于升值加薪;同时,java是零基础的和基础薄弱的学员可以很容易的接受的一
种语言。
我在漫长的学习java的岁月中,遇到了许多大大小小的困难。首先,在学习
java开始中,老师往往会布置很多代码题进行实操或者书写在作业本上。在刚刚
开始的几次作业中,我往往因为自己的浮躁与不耐烦,直接向同学要他们的代码把
作业上交,但渐渐的发现,课堂跟不上,成绩不佳,我陷入了迷惘中后来,意识到
自己学习java的态度与方式是不对的,经过调整,也有了自己的一份学习java的
心得体会。
java的学习基础——C语言,意识到在课上听不懂的原因也来自于自己在大一
上学期并没有把C语言学习透彻,所以我会利用课后的时间看网上的视频来让自己
的C语言基础提高。
java的学习需要理解代码的思路。在写代码与学习java知识点时,往往对于
每句代码都应该理解透彻,在以后的代码书写中,自己才能写出正确的代码,甚至
于找出自己的代码错误。这对于代码的理解透彻,就需要自己在上课时,好好理解
老师的代码思维,自己也需要多看看关于代码的书,加深理解。
java的学习需要保持良好的心态。在进行代码实操时,自己写出大量的代码
却运行不出结果。这时,自己并不能因为不耐烦与困难的打击就直接放弃,而是要
进行学习,通过自纠,问同学,找课外知识来解决问题。同时,在学习java的漫
漫长路中,坚持是十分重要的。在坚持中,找寻学习的方式,让自己进步与成长。
java的学习需要多做,多思考。在java学习中,不仅要学会打课内的代码,
也需要通过百度找寻课外的代码,举一反三,自己解决很多的问题。
在这一年的学习中,我对于java有了初步的认识与了解,我知道自己真正掌
握java还需要一段时间的学习,但我相信我自己只要有颗想学习好java的心,对
于以后的困难是不惧怕的,我相信在学习java中,自己是在此过程中不断成长
的,进步的。
Java容器类学习心得体会「篇三」
JavaWeb,是用Java技术来解决相关web互联网领域的技术总和。在本次实
验课的学习中,通过短短一个小时的了解,对JAVAWEB有了初步的认识。
首先了解了应用程序分为C/S(客户机/服务器)和B/S(浏览器/服务器)两大
类。C/S即Client/Server典型应用有QQ,360安全卫士,B/S即
Browser/Server,典型应用有人人网,腾讯微博。C/S和B/S的主要区别在于程序
是否需要安装。C/S模式的应用系统最大的好处是不依赖企业外网环境,即无论企
业是否能够上网,都不影响应用,能充分发挥客户端PC的处理能力,很多工作可以
在客户端处理后再提交给服务器。缺点是客户端需要安装,其维护和升级成本非常
高。B/S模式最大的好处是运行维护比较简便,能实现不同的人员,从不同的地
点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同
的数据,最大的缺点是对企业外网环境依赖性太强,由于各种原因引起企业外网中
断都会造成系统瘫痪。
其次,又了解了网页主要分为动态网页和静态网页,动态网页归根结底还是静
态网页,只是多了一些自己的标签,知道了静态网页三剑客指的是什么,以及三者
之间的关系和分别承担的功能。网站做好后要部署发力。Tomcat最简单的部署是
把整个文件夹拷到TOMCAT_HOME/webapps目录下。
了解了关于WEB应用的一些知识后,就到了编程的阶段了,虽然java是面向
对象的语言,与面向过程的C语言有一些区别,但二者在编程思路上有贯通的地
方,要善于区别二者的联系和不同,这样才能在C的基础上学好java。但学好一
个语言不是一天两天的功夫,要想真正掌握,以后还需要勤加苦练。编程这个东西
没有技巧可言,当时学C的时候就深刻领悟了这个道理,要想调高编程速度,就只
能多练多编,孰能生巧,做的题目多了,碰到类似的题目,自然就会有想法有思
路。相比于天赋,后天的练习对一个优秀的程序设计师来说更为重要.
随着本次实验课的结束,本学期的SQL实验也就结束了。虽然每次实验都做的
很赶,感觉很多知识都是现场学现场用,但一个学期七次实验下来,确实还是学到
了一些知识,至少一些基本操作是熟悉了,我想这对于今后对SQL的学习来说是很
重要的•步。从这点,我所感受到的是,有时候表面上看起来没有什么收获的经
历,定会在某个时刻绽放出他应有的光彩,所以,无论现在或将来我们会经历什
么,都应该全心全意的品味当下,今天一个小小的经历说不定就会在将来的某一天
改变你的一生。所以,实验课就算不喜欢,也要好好去上,一定能学有所获。
最后,谢谢助教的帮助!
Java容器类学习心得体会「篇四」
学习任何语言(包不英语),基础一定要打好,没有学会走路跑步不可能快
吧,学习java的心得体会。所以学习JAVA一定要先把JAVA的几个基本组成元素
学好。以下是我总结出来的学习顺序和注意事项:
1、数据类型JAVA是一种强类型语言,各种类型不会自动转换,使用前必须
先定义。
2、方法方法相当于定义一个〃宏〃、一个〃函数〃,方法的定义格式为:
〃说明符修饰符返回值方法名(参数){方法体}。"
在学习方法的时候要注意〃说明符、〃修饰符〃、〃返回值〃这三样东西。
我们在调用JAVA的自带的〃类〃里面的〃方法〃的时候,我们一开始是不用看懂
这些方法里面写什么(当然,你能看懂是最好)。我们只要知道,使用了这个方法
后,〃返回值〃的〃类型〃说明
3、类在JAVA中最经常听到词,也是最麻烦的东西,类的定义格式为:
说明符class类名extends超类名implements接口名{主体}
4、变量常量JAVA的常量名一般用全大写字母表示,并且为了节省内存,一
般定义为静态(JAVA程序中的名字我们经常有个默认的规则,类名所有单词第一
个字母大写,方法名第二个单词开始第一个字母大写,变量名小写,这样我们一看
程序就非常清楚了,从小养成良好的习惯嘛,呵呵),变量的定义格式为:
〃修饰符数据类型变量名〃
变量在类中定义(不在方法体中的部分称为域)和在方法体中定义是不同的
(在方法体中定义不需要修饰符),心得体会《学习java的心得体会》。学习变
量的时候要注意两个特殊的东西〃this〃和〃super”。同时我们就要学习什么叫〃覆盖
〃、〃重载〃。
5、控制流所有的编程语言的控制语句无非就是几个ifelseforwhiledo
switcho
6、接口:一个抽象的东西,接口可以多继承,解决了类只能单继承的问题。
接口的定义格式为:
说明符interface接口名{主体}。
接口内的方法都是没有主体的,只有常量或变量。当类使用接口的时候,一定
要〃覆盖〃接口的方法。
7、线程:线程是个比较复杂的东西,例如一个赛马程序有七匹马赛跑,就有
七个线程,看起来好象是同时在跑,其实是计算机分配不同的时间段让七个线程运
行。我们初学者的程序可能还用不上。
到这里为止,JAVA的基本概念我们有一定的了解了,我们就开始研究JAVA的
类了。JAVA的核心API(也就是SUN公司已经为我们写好的类)有以下几种。(还
有其他很多的扩充类)
Java容器类学习心得体会「篇五」
很多同学都想要自己学习Java,但是应该如何学习,从何处着手却很迷茫.针对
这些同学,烟台杰瑞教育资深Java讲师李老师说,学习Java最终的就是基础知识的
学习和框架的掌握,基础知识掌握扎实以后,多多学习各种框架有助于自己少走很
多弯路。
最后,李老师结合杰瑞教育的Java学习课程为大家推荐了一篇网上的学习
Java步骤,大家一起来看一下吧:
第一步:首先要做好学习前的准备工作:java语言一般用于大型的服务器程
序开发,所有有必要了解如下内容;Unix开发环境Unix系统原理、Unix开发环
境、Unix常用命令。熟练掌握Unix常用命令;熟练构建下的Java开发环境。第
二步:然后进入Java语言基础的学习阶段,学习任何一门语言都要打好基础,曾
经学过高级程序语言(C,C++等)来说,java语言基础有自己的特点,但是基本
规律都是相通的,如:算法基础、常用数据结构、企业编程规范。掌握常见的数据
结构和实用算法;培养曼好的企业级编程习惯。
第三步:掌握java语言基础后接下来就是面向对象语言的共性:Java面向对
象面向对象特性:封装、继承、多态等。掌握面向对象的基本原则以及在编程实践
中的意义;掌握Java面向对象编程基本实现原理。
第四步:JDK核心API语言核心包、异常处理、常用工具包、集合框架。熟练
掌握JDK核心API编程技术;理解API设计原则;具备熟练的阅读API文档的能
力;JavaSE核心异常处理、多线程基础、10系统、网络编程、Swing组件、JVM性
能调优(JVM内存结构剖析、GC分析及调优、JVM内存参数优化)、Java泛型、
JDK新特性。熟练掌握JavaSE核心内容,特别是13和多线程;初步具备面向对象
设计和编程的能力;掌握基本的JVM优化策略。XMLXML语法、XML解析(SAX、
DOM)、Dom4j组件、Digester组件。熟练掌握XML语法规则;理解DOM模型;熟
悉Java对XML的'各种解析方式。
第五步:SQL语言SQL语句基础和提高、SQL语句调优。熟练的掌握SQL语
句;掌握一定的数据库查询技巧及SQL语句优化技巧。Oracle数据库开发
Oracle体系结构及系统管理、Oracle数据库高级编程、数据库设计基础。掌
握Oracle体系结构及核心编程技术
第六步:连接数据库:JDBCJDBC核心API(Connection、Statements
ResultSet).JDBC优化技术(缓存技术、批处理技术、连接池技术)。理解JDBC
作为规范的设计原则;熟练掌握JDBCAPI;具备使用JDBC对数据库进行高效访问
的能力。
第七步:软件工程基础软件过程和软件活动;需求设计、概要设计、详细设计
基本原则和文档规范;配置管理的基本概念和必要性;CVS基本操作;Ant简介理
解软件过程的普遍概念和基本的软件活动;理解迭代的意义;掌握Ant、CVS等常
用配置管理及部署工具。
第八步:OOAD及设计模式面向对象基本设计原则、工厂模式、策略模式、适
配器模式、代理模式等、门面模式。理解面向对象设计的一般原则;理解重用的意
义;掌握常见的设计模式。
第九步:HTML/CSSHTML基本文档结构、掌握C3S基础语法、关于HTML文档
块、链接、列表、表格、表单等。掌握HTML基本原理;掌握CSS各种选择器及常
见样式设置;熟练使用HTML常用元素。
JavaScript核心JavaScript语言基础(数据类型、函数、对象、闭包)、
JavaDOM编程、事件模型、JavaScript面向对象编程。深入理解JavaScript语言
原理:熟练的使用JavaScript对IITMLDOM进行编程;熟练掌握JavaScript对象对
象封装技巧,为后续的JavaScript学习打下坚实的基础。
Servlet/JSPServlet生命周期及Servlet服务器、Tomcat部署配置、JSP语
法、自定义标记、JSTL和EL表达式、JSP新特性、Java%b设计模式。透彻理解
Servlet核心原理;熟练掌握ServletAPI;透彻理解JSP引擎工作原理;透彻理
解标记库原理;熟悉常见的JavaWeb设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川成都双流国际机场股份有限公司招聘(急救医生岗)笔试备考试题及答案解析
- 2026河南郑州市金水人才集团有限公司法律复议岗招聘5人考试参考试题及答案解析
- 2026浙江金华市中心医院医疗集团(医学中心)招聘41人(第一批)笔试备考题库及答案解析
- 2026年江西农业大学高层次人才招聘考试备考试题及答案解析
- 2026河北省农林科学院经济作物研究所招聘1人笔试模拟试题及答案解析
- 2025-2026学年素描课程教学设计美术
- 2026年证券分析师的研究框架建立与行业覆盖面拓展
- 2025 小学高年级写作运用说明书体清晰说明事物课件
- 2026年企业员工压力管理团体辅导方案
- 2026山西长治市黎城县公益性岗位人员招聘45人笔试备考题库及答案解析
- GB/T 9439-2010灰铸铁件
- GB/T 3639-2000冷拔或冷轧精密无缝钢管
- 高考全国卷区域农业发展-以我国东北地区为例
- 《做个诚实的好孩子》课件
- 2022年内蒙古呼和浩特白塔国际机场有限责任公司招聘笔试试题及答案解析
- 《纳米材料基础与应用》全书配套教学课件
- 桃树栽培与施肥技术-田波课件
- 部编人教版高中语文选择性必修下册第一单元检测卷
- 第四讲 戊戌维新运动
- 企业安全生产标准化-目录
- 第二章旅行社产品设计与开发
评论
0/150
提交评论