java基础之数组

数组
相同类型的有序集合
通过数组的下标来访问其中的元素
datatype [] arrayRefVar ={a,b,c,d,e}

数组的特性:

数组在创建时长度就已经确定,不可改变
数组内必须是相同类型
数组元素可以是任何数据类型,包括基本类型和引用类型
数组本身也是引用类型,也可以看做是一个对象,其中元素是对象中的成员变量。数组本身是在堆中的。
静态初始化
int[] nums = {1,2,3,4,5};

动态初始化
int[] nums = new int[5];
此时所有元素默认初始化为0或者null等。
nums[0]=10;
package method;

public class Demo6 {
public static void main(String[] args) {
//输出一个反转数组
int[] arrays = {1,2,3,4,5};
Demo6 demo6 = new Demo6();
demo6.printArray(reverse(reverse(arrays)));
}
public static int[] reverse(int[] arrays){ //数组入参
int[] result = new int[arrays.length];
for (int i = 0; i < arrays.length; i++) {
result[arrays.length-1-i] = arrays[i];
}
return result; //数组作返回值
}

public void printArray(int []arrays){
    for (int i = 0; i < arrays.length; i++) {
        System.out.println(arrays[i]+"  ");
    }
    }
}

pop排序
两层循环,外层冒泡轮数,里层一次比较,时间复杂度为O(n2)。
package array;

import java.util.Arrays;

public class poparrays {
public static void main(String[] args) {
int[] array = {1,4,4,99,2,3,4,6,1,5,2,3};
int [] a= sort(array);
System.out.println(Arrays.toString(a));

}
public static int[] sort(int[] array){
    //外层判断走多少次
    for (int i = 0; i < array.length-1; i++) {
        boolean flag = false;
        //内层循环判断相邻两个数的大小并交换位置。
        for (int j = 0; j < array.length-1; j++) {
            if (array[j]< array[j+1]){
               int temp = array[j];
               array[j] =array[j+1];
               array[j+1] = temp;
               flag = true;
            }
        }//优化,如果该次循环内没有进行交换,则说明排序已完成,终止循环。
        if(flag ==false){
            break;
        }
    }
    return array;
}

}

稀疏数组

package array;

import java.util.Arrays;

public class spraseArray {
public static void main(String[] args) {
int[][] sprasearrays = new int [11][11];
sprasearrays[1][2] = 1;
sprasearrays[2][3] = 2;
for (int[] ints: sprasearrays) {
for (int anInt: ints) {
System.out.print(anInt+"\t");
}
System.out.println();
}
int row = sprasearrays.length;
int column = sprasearrays[1].length;
sprase(sprasearrays);
}
public static void sprase(int[][] a){
int sum = 0;
int count = 0;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
if (a[i][j]!=0){
sum++;
}
}
}
System.out.println(“有效值个数为:”+sum);
int[][] array = new int [sum+1][3];
array[0][0] =11;
array[0][1] = 11;
array[0][2] =sum;

    for (int i = 0; i < a.length; i++) {
        for (int j = 0; j < a.length; j++) {
            if(a[i][j]!=0){
                count++;
                array[count][0] =i;
                array[count][1] =j;
                array[count][2] =a[i][j];
            }
        }
    }
    for (int i = 0; i < array.length; i++) {
        System.out.println(array[i][0]+"\t" +array[i][1]+"\t" +array[i][2]+"\t");
    }
}

}
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值