1. 遍历指的就是“通过循环遍历数组的所有元素”。
  2. 拷贝指的是将某个数组的内容拷贝到另一个数组中.

注:实质上,后面大家学容器的扩容就是“数组的拷贝”。

数组的遍历

数组元素下标的合法区间:[0, length-1]。我们可以通过下标来遍历数组中的元素,遍历时可以读取元素的值或者修改元素的值。

  1. package array;
  2. public class TestArrays03 {
  3. public static void main(String[] args) {
  4. int[] a={1,2,3,4,5};
  5. //for循环遍历元素
  6. //for(int i=0;i<a.length;i++){
  7. //System.out.println(a[i]);
  8. //}
  9. //for-each循环遍历
  10. //仅仅是遍历,不涉及下表操作,不能修改
  11. for(int c:a){
  12. System.out.println(c);
  13. }
  14. }
  15. }

for-each专门用于读取数组或容器中所有的元素

注意事项

  • or-each增强for循环在遍历数组过程中不能修改数组中某元素的值.
  • for-each仅适用于遍历,不涉及有关索引(下标)的操作。

数组拷贝

System.arraycopy(object src,int srcpos,object dest, int destpos,int length)
该方法可以将src数组里的元素值赋给dest数组的元素,其中srcpos指定从src数组的第几个元素开始赋值,length参数指定 将src数组的多少个元素赋给dest数组的元素。
image.png

  1. package array;
  2. public class TestArraysCopy {
  3. public static void main(String[] args) {
  4. String[] s={"安徽","湖南","江西","浙江","江苏"};
  5. String[] sBak=new String[6];
  6. System.arraycopy(s,1,sBak,0,4);
  7. for(int i=0;i<sBak.length;i++){
  8. System.out.println(sBak[i]+"\t");
  9. }
  10. }
  11. }

java.util.Arrays类

  1. package array;
  2. import java.util.Arrays;
  3. public class TestArraysClass {
  4. public static void main(String[] args) {
  5. //数组排序
  6. int[] a={1,67,3,56,7,5,0,243};
  7. System.out.println(Arrays.toString(a));
  8. //从小到大排序
  9. Arrays.sort(a);
  10. System.out.println(Arrays.toString(a));
  11. //二分法查找,必须先排序
  12. System.out.println("该元素的索引为:"+Arrays.binarySearch(a,56));
  13. //数组填充,左闭右开
  14. Arrays.fill(a,2,4,99);
  15. System.out.println(Arrays.toString(a));
  16. }
  17. }