仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 664|回复: 10
打印 上一主题 下一主题

[学习教程] JAVA网站制作之两种特别的Java容器类List和Set剖析

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:12:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。  容器类能够年夜年夜进步编程效力和编程才能,在Java2中,一切的容器都由SUN公司的JoshuaBloch举行了从头计划,丰厚了容器类库的功效。
  Java2容器类类库的用处是“保留对象”,它分为两类:
  Collection----一组自力的元素,一般这些元素都从命某种划定规矩。List必需坚持元素特定的按次,而Set不克不及有反复元素。
  Map----一构成对的“键值对”对象,即其元素是成对的对象,最典范的使用就是数据字典,而且另有别的普遍的使用。别的,Map能够前往其一切键构成的Set和其一切值构成的Collection,或其键值对构成的Set,而且还能够像数组一样扩大多维Map,只需让Map中键值对的每一个“值”是一个Map便可。
  1.迭代器
  迭代器是一种计划形式,它是一个对象,它能够遍历并选择序列中的对象,而开辟职员不必要懂得该序列的底层布局。迭代器一般被称为“轻量级”对象,由于创立它的价值小。
  Java中的Iterator功效对照复杂,而且只能单向挪动:
  (1)利用办法iterator()请求容器前往一个Iterator。第一次挪用Iterator的next()办法时,它前往序列的第一个元素。
  (2)利用next()取得序列中的下一个元素。
  (3)利用hasNext()反省序列中是不是另有元素。
  (4)利用remove()将迭代器新前往的元素删除。
  Iterator是Java迭代器最复杂的完成,为List计划的ListIterator具有更多的功效,它能够从两个偏向遍历List,也能够从List中拔出和删除元素。
  2.List的功效办法
  List(interface):序次是List最主要的特性;它确保保护元素特定的按次。List为Collection增加了很多办法,使得可以向List两头拔出与移除元素(只保举LinkedList利用)。一个List能够天生ListIterator,利用它能够从两个偏向遍历List,也能够从List两头拔出和删除元素。
  ArrayList:由数组完成的List。它同意对元素举行疾速随机会见,可是向List两头拔出与移除元素的速率很慢。ListIterator只应当用出处后向前遍历ArrayList,而不是用来拔出和删除元素,由于这比LinkedList开支要年夜良多。
  LinkedList:对按次会见举行了优化,向List两头拔出与删除得开支不年夜,随机会见则绝对较慢(可用ArrayList取代)。它具无方法addFirst()、addLast()、getFirst()、getLast()、removeFirst()、removeLast(),这些办法(没有在任何接口或基类中界说过)使得LinkedList能够看成仓库、行列和双向行列利用。
  3.Set的功效办法
  Set(interface):存进Set的每一个元素必需是独一的,由于Set不保留反复元素。到场Set的Object必需界说equals()办法以确保对象的独一性。Set与Collection有完整一样的接口。Set接口不包管保护元素的序次。
  HashSet:为疾速查找而计划的Set。存进HashSet的对象必需界说hashCode()。
  TreeSet:坚持序次的Set,底层为树布局。利用它能够从Set中提取有序的序列。
  LinkedHashSet:具有HashSet的查询速率,且外部利用链表保护元素的按次(拔出的序次)。因而在利用迭代器遍历Set时,了局会按元素拔出的序次显现。
  HashSet接纳散列函数对元素举行排序,这是专门为疾速查询而计划的;TreeSet接纳红黑树的数据布局举行排序元素;LinkedHashSet外部利用散列以加速查询速率,同时利用链表保护元素的序次,使得看起来元素是以拔出的按次保留的。必要注重的是,天生本人的类时,Set必要保护元素的存储按次,因而要完成Comparable接口并界说compareTo()办法。

恰恰证明了java的简单,要不怎么没有通过c/c++来搞个这种框架?
透明 该用户已被删除
沙发
发表于 2015-1-19 16:30:43 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
乐观 该用户已被删除
板凳
发表于 2015-1-24 14:45:48 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
爱飞 该用户已被删除
地板
发表于 2015-1-25 07:42:54 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
深爱那片海 该用户已被删除
5#
发表于 2015-2-2 15:35:34 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
不帅 该用户已被删除
6#
发表于 2015-2-7 23:18:59 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
飘飘悠悠 该用户已被删除
7#
发表于 2015-2-9 18:56:26 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
柔情似水 该用户已被删除
8#
发表于 2015-2-27 17:14:34 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
精灵巫婆 该用户已被删除
9#
发表于 2015-3-5 18:50:22 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
金色的骷髅 该用户已被删除
10#
发表于 2015-3-7 13:09:20 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
蒙在股里 该用户已被删除
11#
发表于 2015-3-15 06:18:15 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-10 15:09

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表