数组(二)
今日份学习为数组的基本操作。
分为以下几个部分:遍历数组,填充数组元素,替换数组元素,对数组进行排序以及复制数组。
- 遍历数组通常遍历数组是通过使用for循环来实现的。需注意的是,遍历二维数组需要使用双层for循环,通过数组的length属性可获得数组的长度。
【例】呈梯形输出二维数组中的元素
public class Trap {
public static void main(String[] args) {
int b[][]=new int [][] {{1},{2,3},{4,5,6}};
for(int k=0;k<b.length;k++) {
for(int c=0;c<b[k].length;c++) {
System.out.print(b[k][c]);
}
System.out.println();
}
}
}
在遍历数组时,使用foreach可能会更简单。
【例】(数据和上述例子相同)
public class Tautog {
public static void main(String[] args) {
int b[][]= new int[][] {{1},{2,3},{4,5,6}};
System.out.println("数组中的元素是:");
int k=0;
for(int x[]:b) {
k++;
int c=0;
for(int e:x) {
c++;
if(k==b.length&&c==x.length) {
System.out.println(e);
}else
System.out.printf(e+"·");
}
}
}
} - 填充数组元素数组中的元素定义完成后,可通过Arrays类的静态方法fill()来对数组进行填充和替换。
可将指定的int值分配给int型数组的每个元素。
fill (int[] a, int value)
(a:要进行元素替换的数组,value:要储存数组中所有元素的值)
【例】fill (int[] student, int 5)
【例】使用fill()的方法填充数组元素
import java.util.Arrays;
public class Swap {
public static void main(String[] args) {
int arr[]=new int [5];
Arrays.fill(arr, 8);
for(int i=0;i<arr.length;i++) {
System.out.println("第"+i+"个元素是:"+arr[i]);
}
}
} - 替换数组元素将指定的int值分配给int型数组指定范围中的每个元素。填充的范围从索引fromIndex(包括)一直到索引toIndex(不包括)。如果fromIndex =toIndex,则填充范围为空。
fill(int[] a, int fromIndex, int toIndex, int value)
【例】使用fill()方法替换数组中的元素
import java.util.Arrays;
public class Swap {
public static void main(String[] args) {
int arr[]=new int [5];
Arrays.fill(arr, 8);
for(int i=0;i<arr.length;i++) {
System.out.println("第"+i+"个元素是:"+arr[i]);
}
}
} - 对数组进行排序使用Arrays的类的静态方法sort()。sort()方法提供了多种重载形式,可对任意类型的数组进行升序排序。
Arrays.sort(object)
object是指数组名称。具体使用在最终的例子中体现。 - 复制数组
有两种方法可对数组进行复制。
copyOf()方法是复制数组至指定长度,copyOfRange()方法是将指定长度复制到一个新数组中。
copyOf(arr, int newlength)
copyOfRange(arr, int fromIndex, int toIndex)
(使用方法可参照数组的填充替换用法)