网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.深入研究JAVA字节码反编译的方法.
.Java语言深入-构造函数的继承问题.
.TOMCAT+JIVE的安装配置(支持中文).
.Eclipse+MyEclipse+Tomcat的配置.
.在Java SE中使用Hibernate框架.
.Jakarta Commons 内容简介.
.两步学会Java Socket编程.
.Struts+Spring+Hibernate组装web.
.如何准备SCJD.
.java线程简介(同步详细信息).
.使用Java控制UDP协议.
.Java的网络功能与编程3.
.修正Java中wait方法超时语意模糊.
.Rational为由设计直接生成代码努.
.Jini能给您带来什么.
.深入了解WebLogic的类装载机制详.
.Java关于克隆与“冷藏”和“解冻.
.保护Applet免遭“窃取”的小技巧.
.ClassLoader介绍.
.如何更好的使用JTextPane.

JAVA数组和JAVA集合类的对象操作

发表日期:2008-1-5


Java数组和JAV集合类的操作假如你做过很多java程序,你可能对java集合类很熟悉,例如:Vector和ArrayList。你可以创建一个集合并向其中增加元素:

List lst = new ArrayList(); lst.add(new Integer(37));

在这个非凡的范例中,一个整型值37用于构造一个Integer封装类对象,然后那个对象被加入到列表。

这个简单的范例展示集合的一个基础-他们用于操纵一列对象,其中的每个对象是一个类或者接口类型。因此,一个ArrayList可以包含Object,String,Float以及Runnable类型的对象。集合类不能用于原始数据类型的列表,例如整型数组。

假如你在你的程序中使用原始类型的数组,你如何操纵它们呢?这个技巧就给你展示几个你可以使用的技术。

第一个技术是排序。java.util.Arrays类包含一套排序和查找数组的类方法,例如:

import java.util.Arrays;

public class ArrayDemo1 {

public static void main(String args[]) {

int vec[] = {37, 47, 23, -5, 19, 56};

Arrays.sort(vec);

for (int i = 0; i < vec.length; i++) {

System.out.println(vec[i]);

} } }

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

类似的,你可以在排完序的数组上进行二分法查找:

import java.util.Arrays;

public class ArrayDemo2 {

public static void main(String args[]) {

int vec[] = {-5, 19, 23, 37, 47, 56};

int slot = Arrays.binarySearch(vec, 35);

slot = -(slot + 1);

System.out.println("insertion point = " + slot); } }

这个程序有个微妙的概念,假如二分法查找失败它将返回:

-(insertion point) - 1

这个演示程序以参数35调用查找方法,而那个参数在数组中不存在,方法返回值-4,假如这个值加一再取其负数就得到3,这就是35应该被插入到数组中的位置,换言之,值-5, 19和23在数组中占据的位置是0,1和2。因此值35应该在索引3的位置,而37, 47以及56顺延。搜索方法并不进行实际的插入操作而只是指出应该在何处插入。

除了排序和查找,我们还可以对原始类型数组做什么?另一个有用的技术是将一个原始数组转换为等价的对象类型数组。每个对应元素使用它们的封装器类,例如在封装数组中,37成为Integer(37)。

import java.util.Arrays;

import java.lang.reflect.Array;

public class ArrayDemo3 {

// if input is a single-dimension primitive array,

// return a new array consisting of wrapped elements,

// else just return input argument

public static Object toArray(Object vec) {

// if null, return

if (vec == null) {

return vec; }


上一篇:Java基础:三步学会Java Socket编程 人气:658
下一篇:全面剖析Java 6中新型模态对话框API 人气:485
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐