ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java中的数组

2021-01-23 10:02:37  阅读:104  来源: 互联网

标签:java int System Arrays 数组 println out


java数组

数组概述

数组声明创建

int[] nums;   //1.定义,声明数组  推荐做法
int nums2[];   //不推荐
nums=new int[10];  //2.创建数组
System.out.println(nums.length);

数组使用

四个特点:长度确定,相同类型元素,元素可以是任何数据类型,数组变量属于引用类型(数组是一个对象)

  • 从零开始访问

  • 获取长度调用属性length

内存分析

数组内存分析.png

​ 数组内存分析

java内存分析.png

​ java内存分析

数组的三种初始化方式:

  • 静态初始化

  • 动态初始化

  • 默认初始化

//静态初始化
int[] a = {1,2,3,4,5};
System.out.println(a[0]);
//动态初始化:包含默认初始化
int[] b = new int[10];
b[0]=99;

多维数组

Arrays类

java.util.Arrays是一个数组的工具类

int[] a = {1,2,3,4,9090,31231,543,21,3,23};
System.out.println(a);
//打印数组元素
System.out.println(Arrays.toString(a));

Arrays.sort(a);   //排序 升序
System.out.println(Arrays.toString(a));

Arrays.fill(a,2,4,0);//填充
System.out.println(Arrays.toString(a));

八种排序算法

  1. 冒泡排序
public static void sort(int[] a){
    int temp = 0;
    boolean flag = false;
    for (int i = 0; i < a.length - 1; i++) {
        for(int j = 0; j < a.length-1-i;j++){
            if(a[j+1]<a[j]){
                temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
                flag = true;
            }
        }
        if(flag == false){
            break;
        }
        flag=false;
    }
}

稀疏数组

稀疏数组.png

​ 稀疏数组

//1. 创建一个二维数组11*11   0:没有棋子    1:黑棋    2:白棋
int[][] array1 = new int[11][11];
array1[1][2]=1;
array1[2][3]=2;
System.out.println("输出原始的数组:");
for(int[] ints:array1){
    for(int anInt:ints){
        System.out.print(anInt+"\t");
    }
    System.out.println();
}
//转换为稀疏数组保存
//获取有效值的个数
int sum =0 ;
for (int i=0;i<11;i++){
    for(int j=0;j<11;j++){
        if(array1[i][j]!=0){
            sum++;
        }
    }
}
//创建稀疏数组
int[][] array2 = new int[sum+1][3];
//存放行数列数
array2[0][0] = 11;
array2[0][1] = 11;
array2[0][2] = sum;
//存放有效值
int count=0;
for (int i = 0; i < 11; i++) {
    for(int j=0;j<11;j++){
        if(array1[i][j]!=0){
            count++;
            array2[count][0]=i;
            array2[count][1]=j;
            array2[count][2]=array1[i][j];
        }
    }
}
//输出稀疏数组
System.out.println("稀疏数组如下:");
for(int i=0;i<array2.length;i++){
    System.out.println(array2[i][0]+"\t"+array2[i][1]+"\t"+array2[i][2]+"\t");
}
System.out.println("************************************");
System.out.println("还原:");
int[][] array3 = new int[array2[0][0]][array2[0][1]];
for(int i=1;i<array2.length;i++){
    array3[array2[i][0]][array2[i][1]]=array2[i][2];
}
for(int[] ints:array3){
    for(int anInt:ints){
        System.out.print(anInt+"\t");
    }
    System.out.println();
}

标签:java,int,System,Arrays,数组,println,out
来源: https://www.cnblogs.com/YuefanZZZ/p/14316564.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有