📄 操纵java数组-java面向对象 - it电子教育门户 高端java培训.htm
字号:
just return input argument
<BR>10.
<BR>11. public
static Object toArray(Object vec) {
<BR>12.
<BR>13.
// if null, return <BR>14.
<BR>15.
if (vec == null) {
<BR>16.
return vec;
<BR>17.
} <BR>18.
<BR>19.
// if not an array or elements not primitive, return
<BR>20.
<BR>21.
Class cls = vec.getClass();
<BR>22.
if (!cls.isArray()) {
<BR>23.
return vec;
<BR>24.
}
<BR>25.
if (!cls.getComponentType().isPrimitive()) {
<BR>26.
return vec;
<BR>27.
} <BR>28.
<BR>29.
// get array length and create Object output array
<BR>30.
<BR>31.
int length = Array.getLength(vec);
<BR>32.
Object newvec[] = new Object[length];
<BR>33.
<BR>34.
// wrap and copy elements
<BR>35.
<BR>36.
for (int i = 0; i < length; i++) {
<BR>37.
newvec[i] = Array.get(vec, i);
<BR>38.
} <BR>39.
<BR>40.
return newvec;
<BR>41. }
<BR>42.
<BR>43. public
static void main(String args[]) {
<BR>44.
<BR>45.
// create a primitive array
<BR>46.
<BR>47.
int vec[] = new int[]{1, 2, 3};
<BR>48.
<BR>49.
// wrap it <BR>50.
<BR>51.
Object wrappedvec[] = (Object[])toArray(vec);
<BR>52.
<BR>53.
// display result <BR>54.
<BR>55.
for (int i = 0; i < wrappedvec.length; i++) {
<BR>56.
System.out.println(wrappedvec[i]);
<BR>57.
} <BR>58. }
<BR>59. } </FONT></P>
<P><FONT
face="Times New Roman">方法"toArray"的参数是一个Object对象(数组可以被赋值给一个Object引用)。如果参数是null或者代表的不是原始类型数组那么这个方法简单的返回参数值。java.lang.Class工具类用于判断参数是否是一个数组并获取数组的底层元素的类型。</FONT></P>
<P><FONT
face="Times New Roman">一旦做完这些检查,使用java.lang.reflect.Array工具类的反射工具方法就可以获取原始数组的长度并获得数组的单个元素。Array.get获得的每个元素被返回到封装器类中,例如Integer或者Double。</FONT></P>
<P><FONT
face="Times New Roman">最终的范例基于前面的那个并向你展示如何在数组上使用集合特性。这假设你已经有一个对象数组。<BR>1. <BR>2.
import java.util.Arrays; <BR>3. import
java.util.List; <BR>4. <BR>5.
public class ArrayDemo4 {
<BR>6. public
static void main(String args[]) {
<BR>7.
Object vec[] = {new Integer(37), new Integer(47)};
<BR>8.
List lst = Arrays.asList(vec);
<BR>9.
lst.set(1, new Integer(57));
<BR>10.
for (int i = 0; i < vec.length; i++) {
<BR>11.
System.out.println(vec[i]);
<BR>12.
} <BR>13. }
<BR>14. } </FONT></P>
<P><FONT
face="Times New Roman">在这个程序中,vec是一个对象数组,包含Integer(37)和Integer(47),然后Arrays.asList被调用。它返回一个集合(List接口类型),使用数组作为集合的后台存储。换言之,ArrayList这样的集合类型在它内部有某种存储类型去存储集合元素。在这个例子中,使用的存储类型是作为参数传递到Arrays.asList的数组。这意味着集合方法所做的改变会被反射到底层的数组。</FONT></P>
<P><FONT
face="Times New Roman">修改集合中的元素1导致底层的数组也改变,程序的输出是:</FONT></P>
<P><FONT face="Times New Roman">
37<BR> 57</FONT></P>
<P><FONT
face="Times New Roman">因此如果你有一个对象数组,你可以在它上面使用集合特性,数组自身作为底层存储。</FONT></P>
<P><FONT
face="Times New Roman">我们也可以将集合转换为一个对象数组,例如:</FONT></P>
<P><FONT face="Times New Roman"> Object
vec[] = lst.toArray();</FONT></P></DIV></SPAN></TD></TR>
<TR>
<TD width="71%"> </TD>
<TD width="29%">【 <A
href="http://www.mldn.cn/print.jtml?articleid=2331">打印</A> 】【
<A
href="http://www.mldn.cn/member/favlist.jtml?action=add&postid=2331">收藏</A>
】【 <A href="http://www.mldn.cn/email.jtml?articleid=2331"
target=_blank>推荐</A> 】 </TD></TR>
<TR>
<TD colSpan=2>
<TABLE cellSpacing=3 cellPadding=0 width="100%" align=center
bgColor=#ffffff border=0>
<TBODY>
<TR height=25>
<TD align=middle width="33%"><IMG height=95 alt=java视频教程
src="操纵JAVA数组-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/javavideo.gif"
width=642></TD></TR>
<TR>
<TD class=content-table vAlign=top align=middle>
<TABLE>
<TBODY>
<TR>
<TD>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-8-21/article_view_2251.htm"
rel=external><IMG class=midImg alt=struts2.0入门视频
src="操纵JAVA数组-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/struts2.gif"
width=90></A></TD></TR>
<TR>
<TD style="HEIGHT: 22px"> <A
title=struts2.0入门视频
href="http://www.mldn.cn/articleview/2007-8-21/article_view_2251.htm"
rel=external>struts2.0入门视频</A></TD></TR></TBODY></TABLE></TD>
<TD>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-6-15/article_view_2141.htm"
rel=external><IMG class=midImg
alt=JAVAEE学习流程和学习方法
src="操纵JAVA数组-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/j2eejc.gif"
width=90></A></TD></TR>
<TR>
<TD style="HEIGHT: 22px"> <A
title=JAVAEE学习流程和学习方法
href="http://www.mldn.cn/articleview/2007-6-15/article_view_2141.htm"
rel=external>JAVAEE学习流程和学习方..</A></TD></TR></TBODY></TABLE></TD>
<TD>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-6-5/article_view_2091.htm"
rel=external><IMG class=midImg
alt=1-Java介绍及JDK配置
src="操纵JAVA数组-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/javase.gif"
width=90></A></TD></TR>
<TR>
<TD style="HEIGHT: 22px"> <A
title=1-Java介绍及JDK配置
href="http://www.mldn.cn/articleview/2007-6-5/article_view_2091.htm"
rel=external>1-Java介绍及JDK配置..</A></TD></TR></TBODY></TABLE></TD>
<TD>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-4-19/article_view_2012.htm"
rel=external><IMG class=midImg alt=Oracle中的多表连接
src="操纵JAVA数组-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/Oracle.gif"
width=90></A></TD></TR>
<TR>
<TD style="HEIGHT: 22px"> <A
title=Oracle中的多表连接
href="http://www.mldn.cn/articleview/2007-4-19/article_view_2012.htm"
rel=external>Oracle中的多表连接</A></TD></TR></TBODY></TABLE></TD>
<TD>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-4-11/article_view_1978.htm"
rel=external><IMG class=midImg
alt=Struts中logic标签的使用
src="操纵JAVA数组-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/struts.gif"
width=90></A></TD></TR>
<TR>
<TD style="HEIGHT: 22px"> <A
title=Struts中logic标签的使用
href="http://www.mldn.cn/articleview/2007-4-11/article_view_1978.htm"
rel=external>Struts中logic标签..</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD colSpan=2>
<TABLE cellSpacing=3 cellPadding=0 width="100%" align=center
bgColor=#ffffff border=0>
<TBODY>
<TR height=25>
<TD align=middle width="33%" bgColor=#aac4c4><FONT
color=#ffffff>相关文章</FONT></TD>
<TD align=middle width="33%" bgColor=#aac4c4><FONT
color=#ffffff>推荐文章</FONT></TD></TR>
<TR>
<TD class=content-table vAlign=top>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-11-7/article_view_2650.htm"
rel=external>垃圾收集器与Java程序的性能</A> <IMG
alt=24小时内新文章
src="操纵JAVA数组-JAVA面向对象 - IT电子教育门户 高端JAVA培训.files/new.gif"
align=absMiddle border=0></TD>
<TD style="TEXT-ALIGN: right"><SPAN
class=link-Date>[11.7]</SPAN></TD></TR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -