java二维数组基础知识详解

目录
  • 1. 查找
  • 2. 顺序查找
  • 3. 二分查找
  • 4. 多维数组
    • 4.1 二维数组 175
    • 4.2 二维数组细节
  • 5. 二维数组的使用方式 176
  • 6. 二维数组的动态初始化
    • 1.先声明:类型 数组名[][]; 再定义(开辟空间) 数组名 = new 类型[大小][大小]
    • 2.动态初始化-列数不确定 178
  • 7. 二维数组的静态初始化 179
  • 8. 二维数组练习 180
    • 8.1 int arr[][]={{4,6},{1,4,5,7},{-2}}; 遍历该二维数组,并得到和

1. 查找

1) 顺序查找 SeqSearch.java

2) 二分查找【二分法,放在算法讲解】

2. 顺序查找

有一个数列:白眉鹰王、金毛狮王、紫衫龙王、青翼蝠王猜数游戏:从键盘中任意输入一个名称,判断数列中是否 包含此名称【顺序查找】 要求: 如果找到了,就提示找到,并给出下标值。

import java.util.Scanner;
public class Test21
{
public static void main(String[] args)
{
//有一个数列:白眉鹰王、金毛狮王、紫衫龙王、青翼蝠王猜数游戏:
//从键盘中任意输入一个名称,判断数列中是否 包含此名称【顺序查找】
// 要求: 如果找到了,就提示找到,并给出下标值。
// 思路分析 1. 定义一个字符串数组
// 2. 接收用户输入, 遍历数组,逐一比较,如果有,则提示信息,并退出
//定义一个字符串数组
Scanner myScanner = new Scanner(System.in);
String[] names = {"白眉鹰王", "金毛狮王", "紫衫龙王", "青翼蝠王"};
System.out.println("请输入名字");
String findname = myScanner.next();
//遍历数字组
int index = -1;//判断找没找到
for(int i=0;i<names.length;i++)
{
if(findname.equals(names[i]))//使用equals比较字符串是相等
{
System.out.println("恭喜你找到了"+findname);
System.out.println("下标是"+i);
index = i;
break;
}
}
if(index==-1)//没找到
{
System.out.println("没找到"+findname);
}
}
}

3. 二分查找

仅当了解,后面会详细讲解

import java.util.Scanner;
public class Test21
{
public static void main(String[] args)
{
Scanner myScanner = new Scanner(System.in);
int arr[]={1,2,3,4,5,6,7,8,9,10};
int left=0;
int right=arr.length-1;
System.out.println("请输入要查找的数字");
int n =myScanner.nextInt();
while(left<=right)
{
int mid = (left+right)/2;
if(arr[mid]<n)
{
left=mid+1;
}
else if(arr[mid]>n)
{
right=mid-1;
}
else
{
System.out.println("找到啦,下标是"+mid);
break;
}
}
if(left>right)
{
System.out.println("没找到");
}
}
}

4. 多维数组

4.1 二维数组 175

请用二维数组输出如下图形

0 0 0 0 0 0

0 0 1 0 0 0

0 2 0 3 0 0

0 0 0 0 0 0

import java.util.Scanner;
public class Test21
{
public static void main(String[] args)
{
int arr[][]={{0,0,0,0,0,0},{0,0,1,0,0,0},{0,2,0,3,0,0},{0,0,0,0,0,0}};
//输出二维数组
for(int i=0;i<arr.length;i++)
{
//arr[i]表示二维数组的第i+1个元素,比如arr[0]表示二维数组的第一个元素
//arr[i].length表示得到的对应的一维数组的长度
for(int j=0;j<arr[i].length;j++)
{
System.out.print(arr[i][j]+" ");//输出一维数组
}
System.out.println();//换行
}
}
}

4.2 二维数组细节

0 0 0 0 0 0

0 0 1 0 0 0

0 2 0 3 0 0

0 0 0 0 0 0

1. 从定义形式上看 int[][]

2. 可以这样理解,原来的一维数组的每个元素是一维数组, 就构成二维数组

3. 二维数组的个数System.out.println("二维数组的元素个数"+arr.length);//4

4. 二维数组的每个元素是一维数组, 所以如果需要得到每个一维数组的值 还需要再次遍历

5. 如果我们要访问第 (i+1)个一维数组的第 j+1 个值 arr[i][j];

举例 访问 3, =》 他是第 3 个一维数组的第 4 个值 arr[2][3]

System.out.println("第 3 个一维数组的第 4 个值=" + arr[2][3]); //3

5. 二维数组的使用方式 176

1) 语法: 类型[][] 数组名=new 类型[大小][大小]

2) 比如: int a[][]=new int[2][3]

//二维数组的使用

public class Test21
{
public static void main(String[] args)
{
int arr[][]=new int[2][3];
arr[1][1]=8;
//遍历arr
for(int i=0;i<arr.length;i++)
{
for(int j=0;j<arr[i].length;j++)
{
System.out.print(arr[i][j]+" ");
}
System.out.println();//换行
}

}
}

6. 二维数组的动态初始化

1.先声明:类型 数组名[][]; 再定义(开辟空间) 数组名 = new 类型[大小][大小]

例如

int arr[][];//声明

arr=new int[2][3];//定义

2.动态初始化-列数不确定 178

看一个需求:动态创建下面二维数组,并输出

i = 0: 1

i = 1: 2 2

i = 2: 3 3 3

public class Test21
{
public static void main(String[] args)
{
int arr[][]=new int[3][];//列不确定可以不写 创建 二维数组,一共有 3 个一维数组,但是每个一维数组还没有开数据空间
for(int i=0;i<arr.length;i++)
{
arr[i]=new int[i+1];//给一维数组开辟空间
for(int j=0;j<arr[i].length;j++)
{
arr[i][j]=i+1;//给一位数组元素赋值
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}

7. 二维数组的静态初始化 179

定义 类型 数组名[][] = {{值 1,值 2..},{值 1,值 2..},{值 1,值 2..}}

使用即可 [ 固定方式访问 ]

比如:

int[][] arr = {{1,1,1}, {8,8,9}, {100}};

解读

1. 定义了一个二维数组 arr

2. arr 有三个元素(每个元素都是一维数组)

3. 第一个一维数组有 3 个元素 , 第二个一维数组有 3 个元素, 第三个一维数组有 1 个元素

public class Test21
{
public static void main(String[] args)
{
int[][] arr = {{1,1,1}, {8,8,9}, 100};//100没有带{},必报错
}
}

8. 二维数组练习 180

8.1 int arr[][]={{4,6},{1,4,5,7},{-2}}; 遍历该二维数组,并得到和

//int arr[][]={{4,6},{1,4,5,7},{-2}}; 遍历该二维数组,并得到和
public class Test21
{
public static void main(String[] args)
{
int arr[][]={{4,6},{1,4,5,7},{-2}};
int sum=0;
for(int i=0;i<arr.length;i++)
{
for(int j=0;j<arr[i].length;j++)
{
sum+=arr[i][j];
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
System.out.println("sum="+sum);
}
}

到此这篇关于java二维数组基础知识详解的文章就介绍到这了,更多相关java二维数组内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java二维数组计算集合总结

    public class CrossSum{ public static void main(String args[]){ int [][]a = {{1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15}, {16,17,18,19,20}, {21,22,23,24,25}} ; int transverse =0; //横 int vertical =0; //竖 for(int i = 0; i < 5; i++){ transverse = transv

  • Java二维数组简单定义与使用方法示例

    本文实例讲述了Java二维数组简单定义与使用方法.分享给大家供大家参考,具体如下: Java的二维数组是先创建一个一维数组,然后该数组的元素再引用另外一个一维数组.在使用二维数组的时候,通过两个中括号[]来访问每一层维度的引用,直到访问到最终的数据. public class MultiDimArray{ /** * @param args */ public static void main(String[] args) { int[][] arr = new int[3][]; arr[0]

  • Java二维数组与稀疏数组相互转换实现详解

    目录 一.稀疏数组 1.什么是稀疏数组 2.图示 3.稀疏数组的表达方式 二.二维数组→稀疏数组 三.稀疏数组→二维数组 一.稀疏数组 1.什么是稀疏数组 当一个数组中大部分元素为0,或者为同一个值的数组时,可以用稀疏数组来保存该数组.稀疏数组,记录一共有几行几列,有多少个不为零的值或相同的值. 简单来说就是将大规模的数组缩小成小规模的数据,从而减少空间浪费. 2.图示 上面的图示中,左侧是二维数组,右侧是稀疏数组,将二维数组转成稀疏数组,明显的可以看出空间减少了,可以有效的节约空间,提高效率.

  • Java二维数组与动态数组ArrayList类详解

    Java二维数组 Java 语言中提供的数组是用来存储固定大小的同类型元素. 1.二维数组初始化和声明 数组变量的声明,和创建数组可以用一条语句完成,如下所示: int a[][] = new int[2][3]; int[][] arr = {{1,2,3},{4,5,6},{7,8,9}}; 2.二维数组遍历 //遍历二维数组 public class Traverse_a_two_dimensional_array { public static void main(String[] ar

  • java二维数组遍历的2种代码

    二维数组遍历: 思想: 1.先将二维数组中所有的元素拿到 2.再将二维数组中每个元素进行遍历,相当于就是在遍历一个一维数组 第一种方法:双重for循环 //遍历二维数组 public class Traverse_a_two_dimensional_array { public static void main(String[] args) { // TODO Auto-generated method stub int[][] arr = new int[2][3];//动态创建:2个元素(外

  • Java二维数组实战案例

    本文实例讲述了Java二维数组.分享给大家供大家参考,具体如下: 一 点睛 1 每行的元素个数不同的二维数组 Java定义二维数组更加灵活,允许二维数组中的每行的元素个数不相等,这点与其他编程语言不同,例如下面这个二维数组,其中第1行有4个元素,第2行有3个元素,第3行有5个元素 int [][] num={ {1,2,3,4}, {1,2,3}, {1,2,3,4,5} }; 下面的语句是声明整型的二维数组num并分配空间,其中第1行4个元素,第2行3个元素,第3行5个元素 int [][]

  • java二维数组实现推箱子小游戏

    本文实例为大家分享了java实现推箱子小游戏的具体代码,供大家参考,具体内容如下 二维数组 二维数组:类似于二维表格(有很多层,每一层有多个房间的楼房) 数组声明: 数据类型[][]数据名 = new 数据类型[行数][列数]; 获取二维数组的长度:数组名.lengt 得到的是行数 数组名[行下标].length 得到的是列数 推箱子小游戏 import java.util.Random; import java.util.Scanner; /* * 推箱子的小游戏 */ public clas

  • Java二维数组实现数字拼图效果

    二维数组实现数字拼图,供大家参考,具体内容如下 二维数组可以自己随意定义大小,通过方法判断来实现对所有的数字进行随机打乱,并可以通过移动来正确还原,并可以判断0(表示空格)是否可以移动,是否在范围内. public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[][] arrays = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 0 } }; int su

  • Java二维数组查找功能代码实现

    题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 题目分析: 根据二维数组的特点可知,二维数组相当于一个矩阵: 根据题意可知该数组是有序的,因此该矩阵元素相当于是从小到大排列的: 如果从左下角开始查找较方便,因为左下角的值向上是递减的,向右是递增的: 当从左下角开始比较时,如果target传入的数大于它则列数加一进行比较 ,如果小于它则行数减

  • java二维数组指定不同长度实例方法

    我们知道二维数组,是在一维数组的基础上进行了维度的增加.那么在实际使用的过程中,有时候我们所需要的二维数组,它们其中的维度是不同的,这就需要我们手动的进行设置.下面我们就来一起探究,二维数组在改变维度长度大小的方法,并辅以实例进行代码展示. 1.二维数组的每个元素都是一个一维数组,这些数组不一定都是等长的.声明二维数组的时候可以只指定第一维大小,空缺出第二维大小,之后再指定不同长度的数组.但是注意,第一维大小不能空缺(不能只指定列数不指定行数). public class ArrayTest4

随机推荐