java数组和java集合类的对象操作-java面向对象 - it电子教育门户 高端java培训.htm
来自「这是我自己认真整理的java面向对象的各个方面的知识.想和大家一起来分享我的快乐」· HTM 代码 · 共 536 行 · 第 1/3 页
HTM
536 行
main(String args[]) { <BR>int vec[] = {-5, 19, 23, 37, 47,
56}; <BR>int slot = Arrays.binarySearch(vec, 35); <BR>slot =
-(slot + 1); <BR>System.out.println("insertion point = " +
slot); } } <BR>这个程序有个微妙的概念,如果二分法查找失败它将返回: <BR>-(insertion
point) - 1
<BR>这个演示程序以参数35调用查找方法,而那个参数在数组中不存在,方法返回值-4,如果这个值加一再取其负数就得到3,这就是35应该被插入到数组中的位置,换言之,值-5,
19和23在数组中占据的位置是0,1和2。因此值35应该在索引3的位置,而37,
47以及56顺延。搜索方法并不进行实际的插入操作而只是指出应该在何处插入。<BR>除了排序和查找,我们还可以对原始类型数组做什么?另一个有用的技术是将一个原始数组转换为等价的对象类型数组。每个对应元素使用它们的封装器类,例如在封装数组中,37成为Integer(37)。<BR>import
java.util.Arrays; <BR>import java.lang.reflect.Array;
<BR>public class ArrayDemo3 { <BR>// if input is a
single-dimension primitive array, <BR>// return a new array
consisting of wrapped elements, <BR>// else just return input
argument <BR>public static Object toArray(Object vec) { <BR>//
if null, return <BR>if (vec == null) { <BR>return vec; }
<BR>// if not an array or elements not primitive, return Class
cls = vec.getClass(); <BR>if (!cls.isArray()) { <BR>return
vec; } <BR>if (!cls.getComponentType().isPrimitive()) {
<BR>return vec; } <BR>// get array length and create Object
output array int length = Array.getLength(vec); <BR>Object
newvec[] = new Object[length]; <BR>// wrap and copy elements
<BR>for (int i = 0; i < length; i++) { <BR>newvec[i] =
Array.get(vec, i); } <BR>return newvec; } <BR>public static
void main(String args[]) { <BR>// create a primitive array
<BR>int vec[] = new int[]{1, 2, 3}; // wrap it Object
wrappedvec[] = (Object[])toArray(vec); <BR>// display result
<BR>for (int i = 0; i < wrappedvec.length; i++) {
System.out.println(wrappedvec[i]); } }
}<BR>方法"toArray"的参数是一个Object对象(数组可以被赋值给一个Object引用)。如果参数是null或者代表的不是原始类型数组那么这个方法简单的返回参数值。java.lang.Class工具类用于判断参数是否是一个数组并获取数组的底层元素的类型。
<BR>一旦做完这些检查,使用java.lang.reflect.Array工具类的反射工具方法就可以获取原始数组的长度并获得数组的单个元素。Array.get获得的每个元素被返回到封装器类中,例如Integer或者Double。
<BR>最终的范例基于前面的那个并向你展示如何在数组上使用集合特性。这假设你已经有一个对象数组。 <BR>import
java.util.Arrays; <BR>import java.util.List; <BR>public class
ArrayDemo4 { <BR>public static void main(String args[]) {
<BR>Object vec[] = {new Integer(37), new Integer(47)}; List
lst = Arrays.asList(vec); <BR>lst.set(1, new Integer(57));
<BR>for (int i = 0; i < vec.length; i++) {
System.out.println(vec[i]); } } }
<BR>在这个程序中,vec是一个对象数组,包含Integer(37)和Integer(47),然后Arrays.asList被调用。它返回一个集合(List接口类型),使用数组作为集合的后台存储。换言之,ArrayList这样的集合类型在它内部有某种存储类型去存储集合元素。在这个例子中,使用的存储类型是作为参数传。</FONT></P></DIV></SPAN></TD></TR>
<TR>
<TD width="71%"> </TD>
<TD width="29%">【 <A
href="http://www.mldn.cn/print.jtml?articleid=1908">打印</A> 】【
<A
href="http://www.mldn.cn/member/favlist.jtml?action=add&postid=1908">收藏</A>
】【 <A href="http://www.mldn.cn/email.jtml?articleid=1908"
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集合类的对象操作-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集合类的对象操作-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集合类的对象操作-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集合类的对象操作-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集合类的对象操作-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集合类的对象操作-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-9-12/article_view_2366.htm"
rel=external>Java数组特点及基本使用技巧</A></TD>
<TD style="TEXT-ALIGN: right"><SPAN
class=link-Date>[9.12]</SPAN></TD></TR></TBODY></TABLE></TD>
<TD class=content-table vAlign=top>
<TABLE>
<TBODY>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-11-7/article_view_2650.htm">垃圾收集器与Java程序的性能</A></TD></TR>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-11-7/article_view_2652.htm">详细解析Java中抽象类和接口的区别
..</A></TD></TR>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-11-6/article_view_2646.htm">如何实现javabean属性拷贝</A></TD></TR>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-11-2/article_view_2624.htm">讲述java语言中内部类的研究</A></TD></TR>
<TR>
<TD><A
href="http://www.mldn.cn/articleview/2007-11-1/article_view_2614.htm">内部类和匿名类优化Java代码</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD>
<TD vAlign=top width=220>
<TABLE cellSpacing=3 cellPadding=0 width="98%" align=center
bgColor=#ffffff border=0>
<TBODY>
<TR height=25>
<TD align=middle width="33%" bgColor=#aac4c4><FONT
color=#ffffff>热门文章</FONT></TD></TR>
<TR>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?