java二维数组基础知识详解

 更新时间:2023年02月19日 09:12:31   作者:进击的菜鸟子  
这篇文章主要介绍了java二维数组基础知识详解的相关资料,需要的朋友可以参考下

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]

java二维数组_数组初始化

//二维数组的使用

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

java二维数组_数组初始化_02

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

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二维数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot JPA sort多属性排序实例

    SpringBoot JPA sort多属性排序实例

    这篇文章主要介绍了SpringBoot JPA sort多属性排序实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • IDEA项目maven project没有出现plugins和Dependencies问题

    IDEA项目maven project没有出现plugins和Dependencies问题

    这篇文章主要介绍了IDEA项目maven project没有出现plugins和Dependencies问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 关于eclipse安装spring插件报错An error occurred while collecting items to be installed...解决方案

    关于eclipse安装spring插件报错An error occurred while collecting item

    这篇文章主要介绍了关于eclipse安装spring插件报错An error occurred while collecting items to be installed...解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 教你怎么实现java语言的在线编译

    教你怎么实现java语言的在线编译

    这篇文章主要介绍了教你怎么实现java语言的在线编译,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • 源码解析JDK 1.8 中的 Map.merge()

    源码解析JDK 1.8 中的 Map.merge()

    这篇文章主要介绍了JDK 1.8 之 Map.merge()的相关知识,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • idea 打包的jar运行报

    idea 打包的jar运行报 "XXX中没有主清单属性"

    这篇文章主要介绍了idea 打包的jar运行报 "XXX中没有主清单属性",文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Spring MVC 关于controller的字符编码问题

    Spring MVC 关于controller的字符编码问题

    在使用springMVC框架构建web应用,客户端常会请求字符串、整型、json等格式的数据,通常使用@ResponseBody注解使 controller回应相应的数据而不是去渲染某个页面。
    2017-03-03
  • 浅谈java中的TreeMap 排序与TreeSet 排序

    浅谈java中的TreeMap 排序与TreeSet 排序

    下面小编就为大家带来一篇浅谈java中的TreeMap 排序与TreeSet 排序。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Java下载文件的四种方式详细代码

    Java下载文件的四种方式详细代码

    这篇文章介绍了Java下载文件的四种方式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Spring Boot整合mybatis使用注解实现动态Sql、参数传递等常用操作(实现方法)

    Spring Boot整合mybatis使用注解实现动态Sql、参数传递等常用操作(实现方法)

    这篇文章主要介绍了Spring Boot整合mybatis使用注解实现动态Sql、参数传递等常用操作(实现方法),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08

最新评论