赛迪网 > IT技术 Java > Java读书频道-中
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

java.util 第1部分:类集框架 (6)

发布时间:2006.06.05 04:23     来源:清华大学出版社    作者:Herbert Schildt 著 张玉清 吴溥峰等 译

下面的程序展示了ArrayList的一个简单应用。首先创建一个数组列表,接着添加类型String的对象(回想一个引用字符串被转化成一个字符串(String)对象)。接着列表被显示出来。将其中的一些元素删除后,再一次显示列表。
// Demonstrate ArrayList.
import java.util.*;
class ArrayListDemo {
public static void main(String args[]) {
// create an array list
ArrayList al = new ArrayList();
System.out.println("Initial size of al: " +
al.size());
// add elements to the array list
al.add("C");
al.add("A");
al.add("E");
al.add("B");
al.add("D");
al.add("F");
al.add(1, "A2");
System.out.println("Size of al after additions: " +
al.size());
// display the array list
System.out.println("Contents of al: " + al);
// Remove elements from the array list
al.remove("F");
al.remove(2);
System.out.println("Size of al after deletions: " +
al.size());
System.out.println("Contents of al: " + al);
}
}
该程序的输出如下所示:
Initial size of al: 0
Size of al after additions: 7
Contents of al: [C, A2, A, E, B, D, F]
Size of al after deletions: 5
Contents of al: [C, A2, E, B, D]
注意a1开始时是空的,当添加元素后,它的大小增加了。当有元素被删除后,它的大小又会变小。
在前面的例子中,使用由toString( )方法提供的默认的转换显示类集的内容,toString( )方法是从AbstractCollection继承下来的。尽管它对简短的例子程序来说是足够了,然而很少使用这种方法去显示实际中的类集的内容。通常编程者会提供自己的输出程序。但在下面的几个例子中,仍将采用由toString( )方法创建的默认输出。尽管当对象被存储在ArrayList对象中时,其容量会自动增加。仍可以通过调用ensureCapacity( )方法来人工地增加ArrayList的容量。如果事先知道将在当前能够容纳的类集中存储许许多多的项时,你可能会想这样做。在开始时,通过一次性地增加它的容量,就能避免后面的再分配。因为再分配是很花时间的,避免不必要的处理可以改善性能。
ensureCapacity( )方法的特征如下所示:
void ensureCapacity(int cap)
这里,cap是新的容量。相反地,如果想要减小在ArrayList对象之下的数组的大小,以便它有正好容纳当前项的大小,可以调用trimToSize( )方法。该方法说明如下:
void trimToSize( )
从数组列表(ArrayList)获得数组(Array)
当使用ArrayList时,有时想要获得一个实际的数组,这个数组包含了列表的内容。正如前面解释的那样,可以通过调用方法toArray( )来实现它。下面是几个为什么可能想将类集转换成为数组的原因:
· 对于特定的操作,可以获得更快的处理时间。
· 为了给方法传递数组,而方法不必重载去接收类集。
· 为了将新的基于类集的程序与不认识类集的老程序集成。
无论何种原因,如下面的例子程序所示,将ArrayList转换成数组是一件繁琐的事情。
// Convert an ArrayList into an array.
import java.util.*;
class ArrayListToArray {
public static void main(String args[]) {
// Create an array list
ArrayList al = new ArrayList();
// Add elements to the array list
al.add(new Integer(1));
al.add(new Integer(2));
al.add(new Integer(3));
al.add(new Integer(4));
System.out.println("Contents of al: " + al);
// get array
Object ia[] = al.toArray();
int sum = 0;
// sum the array
for(int i=0; i
sum += ((Integer) ia[i]).intValue();
System.out.println("Sum is: " + sum);
}
}
该程序的输出如下所示:
Contents of al: [1, 2, 3, 4]
Sum is: 10
程序开始时创建一个整数的类集。正如上面做出的解释那样,由于不能将原始类型存储在类集中,因此类型Integer的对象被创建并被保存。接下来,toArray( )方法被调用,它获得了一个Objects数组。这个数组的内容被置为整型(Integer),接下来对这些值进行求和。

<<上一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· Java2参考大全:第14章 java.lang 研究 (05-16) · Java2 参考大全:第13 章 字符串处理 (05-10)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管