JAVA网页编程之java.util包进修条记一
再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。条记进修java2SDK1.4.0java.util里边有几个主要的接口,列在这里作为进修的总结:1java.util.Enumeration
有两个办法hasMoreElements(),nextElement()。利用办法以下:
//打印向量v的一切元素
for(Enumeratine=v.elements();e.hasMoreElements();){
System.out.println(e.nextElement().toString());
}
这里注重要挪用nextElement()起首要判别是不是容器里另有元素,若不判别在容器无下一元素时会抛出
NoSuchElementException非常。
固然要想遍历向量中的元素,还能够用Vector的size()和elementAt(int)两个办法,但总以为仍是这里的
和上面的办法要好(没测试过,人人能够会商)
注:java.util包里完成该接口的只要java.util.StringTokenizer类。
2java.util.Iterator
有三个办法hasNext(),next(),remove()。Iterator接口是用来代替Enumeration接口在java汇合框架中的使用
与Enumeration的区分:多了个remove()办法,办法名字分歧。利用办法以下:
//打印向量v除值为“a“的一切元素
importjava.util.*;
publicclasstest{
publicstaticvoidmain(String[]args){
Vectorv=newVector(4);
v.add("a");
v.add("b");
v.add("c");
v.add("d");
for(Iteratoriter=v.iterator();iter.hasNext();){
if(iter.next().equals("a"))iter.remove();
elseSystem.out.println(iter.next().toString());
}
}
}
运转了局我吃了一惊:只打出一个值c,并且抛出非常NoSuchElementException
缘故原由:第一次轮回挪用iter.next()值为a,挪用iter.remove()将其删除,准确。
第二次轮回挪用iter.next()值为b,进进else语句,又挪用一次iter.next()值为c打印
第三次轮回挪用iter.next()值为d,进进else语句,此时向量v中已无更多元素,再挪用next()
则抛出非常。
结论:好像Enumeration接口一样,每次挪用next(),都要想挪用hasNext(),并且你必需避免挪用了
一次hasNext(),尔后边屡次挪用next();
remove()办法只能删除next()办法所指定的元素,假如你不挪用next(),你就不该挪用remove()
不然会抛出IllegalStatementException,也就是说你不克不及用上面的代码完成相似
要清空汇合里一切的元素
for(Iteraoriter=v.iterator();iter.hasNext();){
iter.remove();
}
注:java汇合Collection里边有个iterator()办法,前往一个Iterator.而详细完成取决于完成该接口的类。
好比AbstractCollection里有个privateclassitr完成了Iterator,而iterator()办法前往的就是这个itr。
一切完成了Collection接口的类都能够间接挪用iterator()
ArrayList,LinkedList,vector,HashSet,TreeSet
3java.util.Comarator
有两个办法:intcompare(objecto1,objecto2),booleanequals(objecto)
前者分离用正,零,负暗示两个对象排序划定规矩中的抢先,相称,掉队
后者判别两对象是不是相称
注:完成该接口的类为Collator。别的“effectivejava“一书对这个接口好象有很具体的形貌
4java.util.RandomAccess
这只是个标记接口,用于标明完成该接口的类撑持fast(generallyconstanttime)randomaccess。
我的了解是即查找元素的工夫与容器里元素的几有关,能够用下标来取元素。以下是jdk中
给的一个对照:
for(inti=0,intn=list.size();i<n;i++)
list.get(i);
for(Iteratoriter=list.iterator();iter.hasNext();)
list.next();
前者运转起来要比后者快
注:完成该接口的类有ArrayList,Vector
5java.util.EventListener
标记接口,一切事务监听者接口必需扩大的接口
6java.util.Observer看不懂实践中怎样用:(
最庞大的Collection和Map接口下次再学吧,饿逝世了
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 是一种突破用户端机器环境和CPU 是一种为 Internet发展的计算机语言 是一种为 Internet发展的计算机语言 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 是一种语言,用以产生「小应用程序(Applet(s))
页:
[1]