数组的三种创建方法
public static void main(String[] args) {
//创建数组的第一种方法
int[] arr=new int[6];
int intValue=arr[5];
//System.out.println(intValue);
//创建数组的第二种方法
int[] x={1,2,3,4};
//System.out.println(x[1]);
//创建数组的第三种方法。
int[] y= new int[]{1,2,3,4,5};
int m=0;
boolean length = isLength(m,y);
if(length){
System.out.println(y[m]);
}else{
System.err.println("数组标越界");
}
}
//判断数组下标是否越界
public static boolean isLength(int m,int arr[]){
boolean flag=false;
int length = arr.length;
if(m<length)
flag=true;
return flag;
}
java的arrayCopy用法
arrayCopy( arr1, 2, arr2, 5, 10);
意思是;将arr1数组里从索引为2的元素开始, 复制到数组arr2里的索引为5的位置, 复制的元素个数为10个.
举例:
Int[] arr1 ={1,2,3,4,5};
arrayCopy(arr1, 3, arr1, 2, 2);
意思是:将arr1从数字4开始 拷贝到arr1的数字3的位置, 拷贝2个数, 也就是说将4和5 拷贝到数字3的位置.
元素4,5替换掉元素3,4;最后arr1的结果应该是{1,2,4,5,5}.
Java 中的Arrays.sort()方法
Java的Arrays类中有一个sort()方法,该方法是Arrays类的静态方法,在需要对数组进行排序时,非常的好用。
int[] ints=new int[] {1,6,2,3,9,4,5,7,8};
System.out.println("从小开始排序");
Arrays.sort(ints);
for(int i=0;i<ints.length;i++) {
System.out.print(ints[i]+" ");
}
输出结果:
image.png
找出最大值及其下标
int[] a = {18,25,7,36,13,2,89,63};
int max = a[0];
int maxIndex = 0;
for(int i=1;i<a.length;i++) {
if(max<=a[i]) {
max=a[i]; //如果遍历下标大于max的下标0的值,则交换位置。
maxIndex = i; //遍历下标最大值赋值给maxIndex。
}
}
System.out.println("最大值为:"+max+"最大值下标为:"+maxIndex);
输出结果:
image.png
将一个数组中的元素逆序存放
Scanner s = new Scanner(System.in);
int a1[] = new int [20];
System.out.println("请输入多个正整数(输入-1表示结束):");
int i=0;
do {
a1[i]=s.nextInt();
i++;
}while (a1[i-1]!=-1);
System.out.println("你输入的数组为:");
for(int j=0;j<i-1; j++) {
System.out.print(a1[j]+" ");
}
System.out.print("\n数组逆序输出为:");
for(int j=i-2; j>=0;j=j-1) {
System.out.print(a1[j]+" ");
}
image.png
利用Arrays.sort()方法实现减序排序
System.out.println("\n减序排序后顺序");
//要实现减序排序,得通过包装类型数组,基本类型数组是不行的
Integer[] integers=new Integer[]{20,300,4,4,6,3};
Arrays.sort(integers, new Comparator<Integer>()
{
public int compare(Integer o1, Integer o2)
{
return o2-o1;
}
public boolean equals(Object obj)
{
return false;
}
});
for (Integer integer:integers)
{
System.out.print(integer+" ");
}
输出结果:
image.png
冒泡排序
int[] arr= {90,45,1,13,89,7};
for(int j=0;j<arr.length;j++) { //循环的次数
for(int i=0;i<arr.length-j-1;i++) { //比较的次数 执行的速度快 时间复杂度小
if(arr[i]>arr[i+1]) {
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
System.out.println("第"+(j+1)+"次循环"+Arrays.toString(arr));
}
输出结果:
image.png
给定一维数组,计算出数组中的平均值、最大值、最小值。
int a[] = new int[]{ -10,23,246,-100,0,5};
int max = a[0];
int min = a[0];
int add = a[0];
for(int i =1;i<a.length;i++){
if(a[i]< min){
min = a[i];
}else if(a[i]>max){
max = a[i];
}
add = add+a[i];
}
System.out.println("最小值:"+min);
System.out.println("最大值:"+max);
System.out.println("平均值:"+add/a.length);
输出结果:
image.png