仓酷云

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

[学习教程] JAVA网页设计JAVA数组和JAV汇合类的操纵

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:40:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
唉!都是钱闹的1.Swing和.net开发比较------从市场份额看.net开发主要占据大部分的中小型和中型的的桌面开发,原因是它封装了很多工具汇合|数组假如你做过良多java程序,你大概对java汇合类很熟习,比方:Vector和ArrayList。你能够创立一个汇合并向个中增添元素:

Listlst=newArrayList();lst.add(newInteger(37));

在这个特别的典范中,一个整型值37用于机关一个Integer封装类对象,然后谁人对象被到场到列表。

这个复杂的典范展现汇合的一个基本-他们用于利用一列对象,个中的每一个对象是一个类大概接口范例。因而,一个ArrayList能够包括Object,String,Float和Runnable范例的对象。汇合类不克不及用于原始数据范例的列表,比方整型数组。

假如你在你的程序中利用原始范例的数组,你怎样利用它们呢?这个技能就给你展现几个你可使用的手艺。

第一个手艺是排序。java.util.Arrays类包括一套排序和查找数组的类办法,比方:

importjava.util.Arrays;
publicclassArrayDemo1{
publicstaticvoidmain(Stringargs[]){
intvec[]={37,47,23,-5,19,56};
Arrays.sort(vec);
for(inti=0;i<vec.length;i++){
System.out.println(vec[i]);
}}}

这个演示程序初始化一个整数数组然后挪用Arrays.sort升序排序谁人数组。

相似的,你能够在排完序的数组长进行二分法查找:

importjava.util.Arrays;
publicclassArrayDemo2{
publicstaticvoidmain(Stringargs[]){
intvec[]={-5,19,23,37,47,56};
intslot=Arrays.binarySearch(vec,35);
slot=-(slot+1);
System.out.println("insertionpoint="+slot);}}

这个程序有个奇妙的观点,假如二分法查找失利它将前往:

-(insertionpoint)-1

这个演示程序以参数35挪用查找办法,而谁人参数在数组中不存在,办法前往值-4,假如这个值加几回再三取其正数就失掉3,这就是35应当被拔出到数组中的地位,换言之,值-5,19和23在数组中占有的地位是0,1和2。因而值35应当在索引3的地位,而37,47和56顺延。搜刮办法其实不举行实践的拔出操纵而只是指出应当在那边拔出。

除排序和查找,我们还能够对原始范例数组做甚么?另外一个有效的手艺是将一个原始数组转换为等价的对象范例数组。每一个对应元素利用它们的封装器类,比方在封装数组中,37成为Integer(37)。

importjava.util.Arrays;
importjava.lang.reflect.Array;
publicclassArrayDemo3{
//ifinputisasingle-dimensionprimitivearray,
//returnanewarrayconsistingofwrappedelements,
//elsejustreturninputargument
publicstaticObjecttoArray(Objectvec){
//ifnull,return
if(vec==null){
returnvec;}
//ifnotanarrayorelementsnotprimitive,returnClasscls=vec.getClass();
if(!cls.isArray()){
returnvec;}
if(!cls.getComponentType().isPrimitive()){
returnvec;}
//getarraylengthandcreateObjectoutputarrayintlength=Array.getLength(vec);
Objectnewvec[]=newObject[length];
//wrapandcopyelements
for(inti=0;i<length;i++){
newvec[i]=Array.get(vec,i);}
returnnewvec;}
publicstaticvoidmain(Stringargs[]){
//createaprimitivearray
intvec[]=newint[]{1,2,3};//wrapitObjectwrappedvec[]=(Object[])toArray(vec);
//displayresult
for(inti=0;i<wrappedvec.length;i++){System.out.println(wrappedvec[i]);}}}

办法"toArray"的参数是一个Object对象(数组能够被赋值给一个Object援用)。假如参数是null大概代表的不是原始范例数组那末这个办法复杂的前往参数值。java.lang.Class工具类用于判别参数是不是是一个数组并猎取数组的底层元素的范例。

一旦做完这些反省,利用java.lang.reflect.Array工具类的反射工具办法就能够猎取原始数组的长度并取得数组的单个元素。Array.get取得的每一个元素被前往到封装器类中,比方Integer大概Double。

终极的典范基于后面的谁人并向你展现怎样在数组上利用汇合特征。这假定你已有一个对象数组。

importjava.util.Arrays;
importjava.util.List;
publicclassArrayDemo4{
publicstaticvoidmain(Stringargs[]){
Objectvec[]={newInteger(37),newInteger(47)};Listlst=Arrays.asList(vec);
lst.set(1,newInteger(57));
for(inti=0;i<vec.length;i++){System.out.println(vec[i]);}}}

在这个程序中,vec是一个对象数组,包括Integer(37)和Integer(47),然后Arrays.asList被挪用。它前往一个汇合(List接口范例),利用数组作为汇合的背景存储。换言之,ArrayList如许的汇合范例在它外部有某种存储范例往存储汇合元素。在这个例子中,利用的存储范例是作为参数传。


其实产生见解的过程就是训练自己发现问题,分析问题的能力。根据以上的认识我想谈下传统的学习与通过视频独立学习的优缺点:
再现理想 该用户已被删除
沙发
发表于 2015-1-21 12:35:38 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
谁可相欹 该用户已被删除
板凳
发表于 2015-1-30 18:24:07 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
海妖 该用户已被删除
地板
发表于 2015-2-2 22:18:01 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
小魔女 该用户已被删除
5#
发表于 2015-2-6 17:10:18 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
愤怒的大鸟 该用户已被删除
6#
发表于 2015-2-7 20:35:29 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
若相依 该用户已被删除
7#
发表于 2015-2-9 15:54:00 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
分手快乐 该用户已被删除
8#
 楼主| 发表于 2015-2-27 09:21:03 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
深爱那片海 该用户已被删除
9#
发表于 2015-3-3 21:48:05 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
飘飘悠悠 该用户已被删除
10#
发表于 2015-3-8 14:57:18 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
乐观 该用户已被删除
11#
发表于 2015-3-11 19:15:59 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
只想知道 该用户已被删除
12#
发表于 2015-3-19 08:53:13 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
柔情似水 该用户已被删除
13#
发表于 2015-3-22 17:46:13 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
老尸 该用户已被删除
14#
发表于 2015-3-26 02:54:39 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
冷月葬花魂 该用户已被删除
15#
发表于 2015-4-27 20:01:43 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
不帅 该用户已被删除
16#
发表于 2015-6-5 19:57:22 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
若天明 该用户已被删除
17#
发表于 2015-6-5 22:10:39 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
山那边是海 该用户已被删除
18#
发表于 2015-6-22 17:15:18 | 只看该作者
是一种突破用户端机器环境和CPU
活着的死人 该用户已被删除
19#
发表于 2015-7-4 08:23:23 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
灵魂腐蚀 该用户已被删除
20#
发表于 2015-7-9 10:59:22 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-22 23:12

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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