IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> day07_java数组 -> 正文阅读

[Java知识库]day07_java数组

1.java数组

java数组初始化

静态初始化:

数组的声明和数组元素的赋值操作同时进行

int[] ids1=new int[]{1,2,3,4};//一维数组
int[][] ids2=new int[][]={{1,2,3},{4,3},{1}};//二维数组
//java的二维数组不必要求每行的列相等
//二维数组中的一维为地址值
System.out.println(ids2[0]) //地址值
动态初始化:

数组的声明和数组元素的赋值操作分开进行

int[] ids=new int[4];//一维数组
int[][] ids=new int[2][3];//二维数组

获取数组的长度

通过属性length来获取数组的长度

System.out.println(ids.length);

java数组元素默认初始化值

整数型数据类型(int,short,byte)0
小数数据类型(float,double)0.0
字符数据类型(char)Ascii码为0的字符
布尔数据类型(boolean)false
字符串数据类型(String)null

java内存解析

在这里插入图片描述

数组常见算法

  • 数组元素的赋值
    • 杨辉三角,回形数等
  • 求整形数组元素的最大,最小值,平均数,总和等
  • 数组的反转,复制,查找
    • 线性法,二分法
  • 数组元素的排序算法
    • 冒泡,排序,归并等

数组元素赋值

题目描述
回形数格式方阵的实现

从键盘输入一个整数(1~20)

则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。例如: 输入数字2,则程序输出: 1 2

4 3

输入数字3,则程序输出: 1 2 3

8 9 4

7 6 5

输入数字4, 则程序输出:

1 2 3 4

12 13 14 5

11 16 15 6

问题分析

观察回型数组特征,数字依次递增的循序为四个方向,向右,向下,向左,向上;所以实现时按照这四个方向来进行

方法1:变量控制方向

package arry1;

import java.util.Scanner;

public class case6{
	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		int num;
		num=scan.nextInt();
		int[][] array=new int[num][num];
		int k=1;
		int row=0,col=0;//行列
		for(int i=1;i<=num*num;i++){
			if(k==1){//右
				if(col<num&&array[row][col]==0)
					array[row][col++]=i;
				else{
					k=2;
					col--;
					row++;
					i--;
				}
			}
			else if(k==2){//下
				if(row<num&&array[row][col]==0)
					array[row++][col]=i;
				else{
					k=3;
					col--;
					row--;
					i--;
				}
			}
			else if(k==3){
				if(col>=0&&array[row][col]==0)
					array[row][col--]=i;
				else{
					k=4;
					row--;
					col++;
					i--;
				}
			}
			else if(k==4){
				if(row>=0&&array[row][col]==0)
					array[row--][col]=i;
				else{
					k=1;
					row++;
					col++;
					i--;
				}
			}
		}
		for(int i=0;i<array.length;i++){
			for(int j=0;j<array[i].length;j++){
				System.out.print(array[i][j]+"\t");
			}
			System.out.println();
		}
	}
}

方法2:索引控制方向

package arry1;

import java.util.Scanner;

public class case5{

	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		int num=scan.nextInt();
		int[][] array=new int[num][num];
		int minX=0,minY=0;
		int maxX=num-1,maxY=num-1;
		int count=0;
		while(minX<=maxX){
			for(int j=minY;j<=maxY;j++)
				array[minX][j]=++count;
			minX++;
			for(int i=minX;i<=maxX;i++)
				array[i][maxY]=++count;
			maxY--;
			for(int j=maxY;j>=minY;j--)
				array[maxX][j]=++count;
			maxX--;
			for(int i=maxX;i>=minX;i--)
				array[i][minY]=++count;
			minY++;
		}
		for(int i=0;i<array.length;i++){
			for(int j=0;j<array[i].length;j++){
				System.out.print(array[i][j]+"\t");
			}
			System.out.println();
		}
	}
}

排序算法

衡量排序算法的指标:
  1. 时间复杂度:分析关键字的比较次数和记录的移动次数
  2. 空间复杂度:分析排序算法中需要多少辅助内存
  3. 稳定性:若两个记录A和B的关键字相等,但排序后A,B的先后次序保持不变,则称这种算法是稳定的

array工具类的使用

常见array工具类的使用

java.util.Arrays

在这里插入图片描述

数组常见异常

  1. 数组索引越界异常

在这里插入图片描述

  1. 空指针异常

在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-30 12:36:58  更:2021-07-30 12:38:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/2 6:16:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码