package com.java.test;

import java.util.Arrays;
import java.util.Scanner;

public class Array {
//数组是对象
public static void main(String [] args)
{
int []a=new int [10];
int[]b=new int[5];
int[]c=new int[10];
int[]d=new int[10];
//数组的常见方法有arraycopy,fill,sort,binarySearch,equals
Arrays.fill(d,5);
Arrays.sort(d);
int e=Arrays.binarySearch(d, 5);
System.out.println(Arrays.equals(a, c));
//声明数组的另外俩种方法如下:
//int []a=new int[]{0,1,2,3,4,5,6,7,8,9}
//int []a={0,1,2,3,4,5,6,7,8,9}
for(int i=0;i<10;i++)

a[i]=i;//给数组赋值
//如何将一个数组拷贝到另外一个数组方法
//方法之一是c=a,但是这样c的c和a引用同一个对象,所以c改变的话就会导致a数组也会改变。
//方法之二是将a依次读出,依次赋值给数组c
//方法之三是arraycopy(原数组,从原数组的第几个位置开始,目标数组,从目标数组的第几个位置开始放置,拷贝几个)
System.arraycopy(a, 0, c, 0, 10);
for(int element:c)
System.out.println(element);
//还可以将用户输入的值赋值给数组

Scanner scan=new Scanner(System.in);

for(int i=0;i<5;i++)
{ System.out.println("请输入第"+i+"个数,该数将为数组第"+i+"个位置赋值");
int score=scan.nextInt();
b[i]=score;
}
for(int element:b)
System.out.print(element);
System.out.println("下面用for循环方法遍历整个数组输出");
for(int i=0;i<a.length;i++)
System.out.print(a[i]);
System.out.println("foreach语法遍历数组并输出,好处是不用考虑数组索引问题");
for(int element:a)//foreach 语法遍历整个数组并输出
System.out.print(element);
System.out.println("下面是Arrays.toString方法遍历整个数组并输出,它将返回包含数组元素的字符串");
String s=Arrays.toString(a);
System.out.print(s);
//下面关于二维数组
int [][] arr={{1,2,3,4},{2,3,4,5},{5,6}};
//通过for循环遍历整个二维数组,注意arr.length属性指的是数组的行数,而由于二维数组的不规则性,列数可能
//不唯一,所以列数的范围只能是取得某行,然后在确定列数,即arr[i].length
for(int i=0;i<arr.length;i++)
{
for(int j=0;j<arr[i].length;j++)
System.out.print(arr[i][j]);
}

}