网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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,移动开发
本月文章推荐
.人物专访: 畅销作家Harold《 Jav.
.如何控制DataGrid里的内容换行与.
.Java Applet如何自动发e-mail.
.EJB 3.0 开发指南之定时服务.
.探索J2ME:对记录进行排序.
.浅谈JAVA VM 发展.
.专家释疑:轻松提高Java代码的性.
.Java 3D的动画展示图(Part1-使用.
.python为Java项目增加预编译脚本.
.Collections API定制实现(一).
.戏说java设计模式中的命令模式.
.EJB3.0开发指南之多对多和一对一.
.Java对象的强、软、弱和虚引用.
.Java编程之谈谈JAVA中的调用方式.
.IOPCBrowseServerAddressSpace的.
.JSF是初学者进入Java Web世界的跳.
.为简化企业级系统开发而诞生的Sp.
.使用 Struts 提供的 HTML 标签库.
.代码复用的规则.
.当前流行的J2EE WEB应用架构分析.

驯服Tiger(J2SE5.0)之集合框架

发表日期:2008-1-5



  您可能已经非常熟悉新的J2SE5.0语言的泛型支持、并发工具库以及它们对集合框架的影响,但是这些并不是J2SE5.0中集合框架的惟一变化。本文将介绍另外几项增强,其中包括新的集合类型,以及现有类和接口的附加特性。

  JDK 5.0 中最吸引人的地方在于集合框架的一些最突出的特性上,例如:支持泛型的语言级别上的新变化,以及可以在 Java.util.concurrent 包中找到的并发集合工具包。在本文中,我将研究其他三个变化:更新过的 Arrays 和 Collections 类、新的 Queue 接口以及它的 PriorityQueue 实现。

  数组(Array)

  Arrays 类提供了一系列处理数组的静态工具方法,这些索引的数据结构的大小是固定的。在 5.0 版本之前,Arrays 类拥有针对原始数据库类型和通用 Object 类型的每种不同数组类型的 binarySearch()、equals()、fill() 和 sort() 方法。用于将 Object 数组转换成 List 的附加 asList() 方法仍然有用。Tiger 为所有数组添加了 hashCode() 和 toString() 方法,还添加了特定于 Object 数组的 deepEquals()、deepHashCode() 和 deepToString() 方法。总计有 21 个新方法可用:
  • public static boolean deepEquals(Object[] a1, Object[] a2)
  • public static int deepHashCode(Object[] a)
  • public static String deepToString(Object[] a)
  • public static int hashCode(boolean[] a)
  • public static int hashCode(byte[] a)
  • public static int hashCode(char[] a)
  • public static int hashCode(double[] a)
  • public static int hashCode(float[] a)
  • public static int hashCode(int[] a)
  • public static int hashCode(long[] a)
  • public static int hashCode(Object[] a)
  • public static int hashCode(short[] a)
  • public static String toString(boolean[] a)
  • public static String toString(byte[] a)
  • public static String toString(char[] a)
  • public static String toString(double[] a)
  • public static String toString(float[] a)
  • public static String toString(int[] a)
  • public static String toString(long[] a)
  • public static String toString(Object[] a)
  • public static String toString(short[] a)
  自从集合框架初次出现在 J2SE 1.2 中以来,人们第一次对实用工具类进行了更改。我无法确定为什么 Sun 要等这么久才进行更改,但是对于可用的帮助器方法系列来说,这些更改是受欢迎的添加。

  新添加的第一个方法是 hashCode()。对于任意数组类型,都可以调用 Arrays.hashCode(arrayVar) 方法来获得格式良好的哈希码。这个哈希码可以用作 HashMap 或者其他相关目的的键。假如您不知道如何生成良好的哈希码,那么最好使用 Arrays 类,它能产生更少冲突。Arrays 类生成等价于拥有相同元素的 List 的代码。

  在创建自己的类时,既需要提供 equals() 方法,又需要提供 hashCode() 方法。在 Arrays 的新方法 hashCode() 的帮助下,可以为任何本地数组类型生成哈希码,而不用在每次需要它的时候折腾您自己。

  所有数组类型都可用的另一个方法是 toString()。对于任何数组类型,都可以调用 Arrays.toString(arrayVar) 获得逗号分隔的元素列表,列表用方括号包围,如清单 1 的程序所示:

清单 1. 用 Arrays.toString 生成字符串
 
import java.util.Arrays; 

public class ArgsToString { 
  public static void main(String args[]) { 
    System.out.println(Arrays.toString(args)); 
  } 
} 

  清单 2 显示了结果:

清单 2. 清单 1 的结果

上一篇:关于Java的Classpath详解 人气:517
下一篇:JDBC 入门 人气:1191
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐