数组专题

来源:互联网 发布:linux查看ls命令手册页 编辑:程序博客网 时间:2024/06/05 09:53

一、这里主要讲二维数组 

Trap.java

package com.array;

public class Trap {
public static void main(String[] args) {
int b[][]=new int[][]{{1},{2,3},{4,5,6}};
System.out.println("二维数组的行数是:"+b.length);
//外层循环,循环行数
for(int i=0;i<b.length;i++){
//内层循环,循环列数
System.out.print("第"+(i+1)+"行是:");
for(int j=0;j<b[i].length;j++){
System.out.print(b[i][j]);
}
//每打印一行就进行换行
System.out.println();
}
}

}

程序结果如图所示


/*
 * 总结:
 * 一、
 * int b[][]=new int[3][2];表示定义了一个三行两列的二维数组,列举出来就是
 * b[0][0],b[0][1]
 * b[1][0],b[1][1]
 * b[2][0],b[2][1]
 * 二、
 * 还可以这样定义
 * int b[][]=new int[3][];这样是定义了一个三行的二维数组
 * b[0]=new int[2];第一行有两列
 * b[1]=new int[4];第二行有四列
 * b[2]=new int[3];第三行有三列
 * 形如: 5 7
 *    2 8 5 1
 *    6 0 3
 * 三、int b[][]=new b[][]{{3},{2,7},{6,9,4}};  这就是定义了一个三行的数组
 * 第一行:3
 * 第二行:2 7
 * 第三行:6 9 4

 */

二、填充、替换数组元素

Swap.java

package com.array;
import java.util.Arrays;
/*
 * 填充数组元素。通过Arrays类的静态方法fill()来对数组中元素进行替换
 * fill()方法有两种参数类型,一、fill(int[] a,int value)
 * 二、fill(int[] a,int fromIndex,int toIndex,int value)
 */
public class Swap {
public static void main(String[] args) {
//使用fill(int[] a,int value)
int array[]=new int[5];
//表示为整个数组填充8
Arrays.fill(array, 8);
for(int i=0;i<array.length;i++){
System.out.println("第"+(i+1)+"个元素为:"+array[i]);
}
System.out.println("------");
//使用fill(int[] a,int fromIndex,int toIndex,int value)
//表示为数组arr填充,从索引fromIndex(包括)到索引toIndex(不包括)

int arr[]=new int[]{45,12,2,10};
//表示从索引1(包括)到索引2(不包括)用替换
Arrays.fill(arr, 1, 2, 8);
//循环打印
for(int i=0;i<arr.length;i++){
System.out.println("第"+(i+1)+"个元素为:"+arr[i]);
}
System.out.println("------");
//表示从索引1(包括)到索引3(不包括)用替换
Arrays.fill(arr, 1, 3, 5);
//循环打印
for(int i=0;i<arr.length;i++){
System.out.println("第"+(i+1)+"个元素为:"+arr[i]);
}
}   
}


三、对数组进行排序

Taxis.java

package com.array;
import java.util.Arrays;
/*
 * 对数组进行排序,通过调用Arrays类的静态方法sort()方法,sort()方法提供了多种重载形式。可对
 * 任意类型数组进行升序排序,
 */
public class Taxis {
public static void main(String[] args) {
int arr[]=new int[]{23,42,12,8};
//对数组进行排序
Arrays.sort(arr);
//循环打印排序后的数组
System.out.println("排序后的数组为:");
for(int i=0;i<arr.length;i++){
System.out.print(" "+arr[i]);
}
}
}

程序运行后的结果如图:


四、复制数组

Cope.java

package com.array;
import java.util.Arrays;
/*
 * 数组复制。Arrays类copyOf()方法与copyOfRange()方法可以实现对数组的复制。
 * copyOf()方法是复制数组至指定的长度,copyOfRange()方法则是将指定数组的指定
 * 长度复制到一个新的数组中。
 */
public class Cope {
public static void main(String[] args) {
//定义一个数组
int arr[]=new int[]{23,42,12};
//打印一句话
System.out.println("原数组为:");
//循环遍历数组元素
for(int i=0;i<arr.length;i++){
System.out.print(" "+arr[i]);
}
//换行
System.out.println();
//打印----并换行
System.out.println("------");
//1、使用copyOf()方法,表示把arr数组复制到一个新的数组中,长度为5,因为原来的数组长度为3
//现在新的数组为5,所以把23,42,12复制过去后再补0,0。如果复制长度为2,那么把前两个数字
//23,42复制过去。

int newarr[]=Arrays.copyOf(arr, 5);
//打印一句话并换行
System.out.println("以长度为5复制后的新数组为:");
//循环遍历新数组
for(int i=0;i<newarr.length;i++){
System.out.print(" "+newarr[i]);
}
//换行
System.out.println();
//打印----并换行
System.out.println("------");
int newarrs[]=Arrays.copyOf(arr, 2);
//打印一句话
System.out.println("以长度为2复制后的新数组为:");
//循环遍历新数组元素
for(int i=0;i<newarrs.length;i++){
System.out.print(" "+newarrs[i]);
}
//换行
System.out.println();
//打印-----并换行
System.out.println("*******************");
//2、使用copyOfRanger()方法。首先定义数组如下
int arrs[]=new int[]{23,42,12,84,10};
//打印
System.out.println("新定义的一组数组为");
for(int i=0;i<arrs.length;i++){
System.out.print(" "+arrs[i]);
}
//换行
System.out.println();
//打印----并换行
System.out.println("------");
//复制数组arrs,从索引0(包括)开始到索引3(不包括)
int[] newsarrs=Arrays.copyOfRange(arrs, 0, 3);
//循环打印指定索引范围复制的新数组
System.out.println("指定索引范围复制的新数组:");
for(int i=0;i<newsarrs.length;i++){
System.out.print(" "+newsarrs[i]);
}
}
}

程序运行结果如图所示:


五、数组查询

Example.java

package com.array;
import java.util.Arrays;
/*
 * 数组查询。使用Arrays类的binarySearch()方法,该方法返回要搜索元素的索引值
 */
public class Example {
public static void main(String[] args) {
int a[]=new int[]{1,8,9,4,5};
//对数组进行排序
Arrays.sort(a);
//数组a中元素4的索引位置是多少
int index=Arrays.binarySearch(a, 4);
//这里需要注意,先进行了排序然后又进行了索引位置的确定
System.out.println("4的索引位置是:"+index);
}
}

程序运行的结果如图所示:


0 0