资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
Java 多维数组详解 转载 2011-12-15 20:23:29| 分类: java|字号 订阅java 语言中,数组是一种最简单的复合数据类型。数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。数组有一维数组和多维数组。 一维数组 1 一维数组的定义type arrayName ; 类型(type) 可以为 Java 中任意的数据类型,包括简单类型和复合类型。 例如: int intArray ; Date dateArray;2一维数组的初始化 静态初始化 int intArray=1,2,3,4; String stringArray=abc, How, you; 动态初始化 1)简单类型的数组 int intArray; intArray = new int5;2)复合类型的数组 String stringArray ; String stringArray = new String3;/*为数组中每个元素开辟引用 空间(32位) */ stringArray0= new String(How);/为第一个数组元素开辟空间 stringArray1= new String(are);/为第二个数组元素开辟空间 stringArray2= new String(you);/ 为第三个数组元素开辟空间3一维数组元素的引用数组元素的引用方式为: arrayNameindexindex 为数组下标,它可以为整型常数或表达式,下标从0开始。每个数组都有一个属性 length 指明它的长度,例如:intArray.length 指明数组 intArray的长度。多维数组Java 语言中,多维数组被看作数组的数组。1二维数组的定义type arrayName ; type arrayName;2二维数组的初始化 静态初始化 int intArray =1,2,2,3,3,4,5;Java 语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。 动态初始化 1) 直接为每一维分配空间,格式如下: arrayName = new typearrayLength1arrayLength2; int a = new int23; 2) 从最高维开始,分别为每一维分配空间: arrayName = new typearrayLength1 ; arrayName0 = new typearrayLength20; arrayName1 = new typearrayLength21; arrayNamearrayLength1-1 = new typearrayLength2n;3) 例: 二维简单数据类型数组的动态初始化如下, int a = new int2 ; a0 = new int3; a1 = new int5;对二维复合数据类型的数组,必须首先为最高维分配引用空间,然后再顺次为低维分配空间。 而且,必须为每个数组元素单独分配空间。例如: String s = new String2 ; s0= new String2;/为最高维分配引用空间 s1= new String2; /为最高维分配引用空间 s00= new String(Good);/ 为每个数组元素单独分配空间 s01= new String(Luck);/ 为每个数组元素单独分配空间 s10= new String(to);/ 为每个数组元素单独分配空间 s11= new String(You);/ 为每个数组元素单独分配空间3二维数组元素的引用 对二维数组中的每个元素,引用方式为:arrayNameindex1index2 例如: num10; 4二维数组举例:【例2 2】两个矩阵相乘 public class MatrixMultiply public static void main(String args) int i,j,k; int a=new int 23; /动态初始化一个二维数组 int b=1,5,2,8,5,9,10,-3,2,7,-5,-18;/静态初始化 一个二维数组 int c=new int24; /动态初始化一个二维数组 for (i=0;i2;i+) for (j=0; j3 ;j+) aij=(i+1)*(j+2); for (i=0;i2;i+) for (j=0;j4;j+) cij=0; for(k=0;k3;k+) cij+=aik*bkj; System.out.println(*Matrix C*);/打印 Matrix C 标记 for(i=0;i2;i+) for (j=0;j4;j+) System.out.println(cij+ ); System.out.println(); 25 字符串的处理 字符串的表示Java 语言中,把字符串作为对象来处理,类 String 和 StringBuffer 都可以用来表示一个字符串。(类名都是大写字母打头) 1字符串常量字符串常量是用双引号括住的一串字符。 Hello World!2String 表示字符串常量用 String 表示字符串: String( char chars ); String( char chars , int startIndex, int numChars ); String( byte ascii , int hiByte ); String( byte ascii , int hiByte, int startIndex, int numChars ); String 使用示例: String s=new String() ; 生成一个空串下面用不同方法生成字符串abc: char chars1=a,b,c; char chars2=a,b,c,d,e; String s1=new String(chars1); String s2=new String(chars2,0,3); byte ascii1=97,98,99; byte ascii2=97,98,99,100,101; String s3=new String(ascii1,0); String s4=new String(ascii2,0,0,3); 3用 StringBuffer 表示字符串StringBuffer( ); /*分配16 个字符的缓冲区*/ StringBuffer( int len ); /*分配 len 个字符的缓冲区 */ StringBuffer( String s ); /*除了按照 s 的大小分配空间外, 再分配16个 字符的缓冲区*/访问字符串 1类 String 中提供了 length( )、charAt( )、indexOf( )、lastIndexOf( )、getChars( )、 getBytes( )、toCharArray( )等方法。 public int length() 此方法返回字符串的字符个数 public char charAt(int index) 此方法返回字符串中 index 位置上的字符,其中 index 值的 范围是0length-1 public int indexOf(int ch) public lastIndexOf(in ch) 返回字符 ch 在字符串中出现的第一个和最后一个的位置 public int indexOf(String str) public int lastIndexOf(String str) 返回子串 str 中第一个字符在字符串中出现的第一个和最后一个的位置 public int indexOf(int ch,int fromIndex) public lastIndexOf(in ch ,int fromIndex) 返回字符 ch 在字符串中位置 fromIndex 以后出现的第一个和最后一个的位置 public int indexOf(String str,int fromIndex) public int lastIndexOf(String str,int fromIndex) 返回子串 str 中的第一个字符在字符串中位置 fromIndex 后出现的第一个和最后一个的位置。 public void getchars(int srcbegin,int end ,char buf,int dstbegin) srcbegin 为要提取的第一个字符在源串中的位置, end 为要提取的最后一个字符在源串中的位置,字符数组 buf存放目的字符串, dstbegin 为提取的字符串在目的串中的起始位置。 public void getBytes(int srcBegin, int srcEnd,byte dst, int dstBegin) 参数及用法同上,只是串中的字符均用8位表示。2类 StringBuffer 提供了 length( )、charAt( )、getChars( )、capacity()等方法。方法 capacity()用来得到字符串缓冲区的容量,它与方法 length()所返回的值通常是不同的。 修改字符串 修改字符串的目的是为了得到新的字符串,类 String 和类 StringBuffer 都提供了相应的方法。有关各个方法的使用,参考 java 2 API。1String 类提供的方法:concat( ) replace( ) substring( ) toLowerCase( ) toUpperCase( ) public String contat(String str); 用来将当前字符串对象与给定字符串 str 连接起来。 public String replace(char oldChar,char newChar); 用来把串中出现的所有特定字符替换成指定字符以生成新串。 public String substring(int beginIndex); public String substring(int beginIndex,int endIndex); 用来得到字符串中指定范围内的子串。 public String toLowerCase(); 把串中所有的字符变成小写。 public String toUpperCase(); 把串中所有的字符变成大写。2StringBuffer 类提供的方法: append( ) insert( ) setCharAt( )如果操作后的字符超出已分配的缓冲区,则系统会自动为它分配额外的空间。 public synchronized StringBuffer append(String str); 用来在已有字符串末尾添加一个字符
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号