Java如何将二维数组转化为一维数组
作者:KFC宅急送专员 发布时间:2022-11-18 12:23:18
标签:Java,二维数组,一维数组
将二维数组转化为一维数组
1. 为了偷懒所以我写了一个随机生成二维数组的函数
/*
* 自动创建随机为100以内的二维数组: int nums[x][y]
* */
public static int[][] CreatedDemArray(int x,int y){
int nums[][]=new int[x][y];
for(int i=0;i<nums.length;i++){
for(int j=0;j<nums[i].length;j++){
nums[i][j]=(int)(Math.random()*100);
}
}
return nums;
}
2. 定义一个5x8的二维函数
public static void main(String[] args) {
createdarray ca=new createdarray();
int nums[][]=CreatedDemArray(5,8);
}
3. 定义一个长度为40 的int 数组,并使用System.arraycopy的方式将二维数组填充到一维数组temp中
public static void main(String[] args) {
createdarray ca=new createdarray();
int nums[][]=CreatedDemArray(5,8);
//定义整数数组
int[] temp=new int[40];
//通过 arraycopy方法来将二维数组填充到一维数组temp中
for(int i=0;i<nums.length;i++){
System.arraycopy(nums[i],0,temp,i*8,8);
}
}
4. 如果填充到一维数组之后我想搞点事,把一维数组进行排序后,回填到二维数组中
public static void main(String[] args) {
createdarray ca=new createdarray();
int nums[][]=CreatedDemArray(5,8);
int[] temp=new int[40];
for(int i=0;i<nums.length;i++){
System.arraycopy(nums[i],0,temp,i*8,8);
}
// 对一维数组进行排序
Arrays.sort(temp);
// 将排序后的数组进行回填
int index=0;
while (index<temp.length){
for(int i=0;i<nums.length;i++){
for(int j=0;j<nums[i].length;j++){
nums[i][j]=temp[index++];
}
}
}
System.out.println("排序后的数组如下");
// 这里因为懒所以我自定义了一个函数 打印二维数组
ShowDemArray(nums);
}
5. 补充一下上面用到的打印二维数组
/*
* 输出二维数组
* 这里我不知道怎么写我还去问了我前任:) 因为我实在不知怎么传这个参
* 如果要做成通用的比如说既能打印整数类型又能打印字符串类型的二维数组需要用的泛型...
* 毕业2年我已经忘了泛型怎么用,下次再补补
*/
public static void ShowDemArray(int[][] nums){
for (int i=0;i<nums.length;i++){
for (int j=0;j<nums[i].length;j++){
System.out.print(nums[i][j]+"\t");
if((j+1)%nums[i].length==0){
System.out.println();
}
}
}
}
今天也是想当测开的一天
一维数组转化为二维数组
由于经常在使用矩阵进行计算时,会首先将一维数组转为二维数组。因此,在这里记录一下,也希望对他人有帮助。
package deal;
/*
* author:合肥工业大学 管院学院 钱洋
*1563178220@qq.com
*/
public class ArryTest {
public static void main(String[] args) {
//创建一个一维数组 0,1,2,3...,10
double [] c= new double[10];
for (int i = 0; i < c.length; i++) {
c[i]=i;
}
double[][] testArr=TwoArry(c);
for (int i = 0; i < testArr.length; i++) {
for (int j = 0; j < testArr[i].length; j++) {
System.out.println(testArr[i][j]);
}
}
}
//一维数组转化为二维数组
public static double[][] TwoArry(double[] onedouble){
double[][] arr=new double[1][onedouble.length];
for (int i = 0; i < onedouble.length; i++) {
arr[0][i]=onedouble[i];
}
return arr;
}
}
程序运行结果。
来源:https://blog.csdn.net/wutrg1502/article/details/120045670


猜你喜欢
- 本文实例讲述了Android实现Service重启的方法。分享给大家供大家参考。具体如下:做APP的时候,我们可能需要一个后台服务一直在运行
- 前言 短时间提升自己最快的手段就是背面试题,最近总结了Java常用的面试题,分享给大家,希望大家都能圆梦大厂,加油,我命由我不由天
- 本课程的目标是帮你更有效的使用Java。其中讨论了一些高级主题,包括对象的创建、并发、序列化、反射以及其他高级特性。本课程将为你的精通Jav
- 延迟队列延迟队列存储的对象肯定是对应的延时消息,所谓”延时消息”是指当消息被发送以后,并不想让消费者立即拿到消息,而是等待指定时间后,消费者
- 用java实现的数组创建二叉树以及递归先序遍历,递归中序遍历,递归后序遍历,非递归前序遍历,非递归中序遍历,非递归后序遍历,深度优先遍历,广
- 要想实现android手机通过扫描名片,得到名片信息,可以使用脉可寻提供的第三方SDK,即Maketion ScanCard SDK,脉可寻
- 1.为什么要使用synchronized在并发编程中存在线程安全问题,主要原因有:1.存在共享数据 2.多线程共同操作共享数据。关键字syn
- 上次简单的说了一下CoordinatorLayout的基本用法(android特性之CoordinatorLayout用法探析实例)。其中C
- C语言的指针相当的灵活方便,但也相当容易出错。许多C语言初学者,甚至C语言老鸟都很容易栽倒在C语言的指针下。但不可否认的是,指针在C语言中的
- 一、背景项目中肯定会遇到异步调用其他方法的场景,比如有个计算过程,需要计算很多个指标的值,但是每个指标计算的效率快慢不同,如果采用同步执行的
- 哈喽大家好啊,我是Hydra。Spring作为项目中不可缺少的底层框架,提供的最基础的功能就是bean的管理了。bean的注入相信大家都比较
- 讲解之前需要说明的是旋转屏幕:在系统的自动旋转屏幕开启的情况下,我们旋转屏幕手动设置屏幕:我们自己去调用Activity的 setReque
- 本文实例为大家分享了java常用工具类的具体代码,供大家参考,具体内容如下Random随机数工具类package com.jarvis.ba
- 本文主要介绍了SpringBoot配置文件中的明文密码如何加密保存,读取以及对于自定义的加密算法加密的参数如何保存和读取。背景为了安全的需要
- java连续执行多条cmd命令命令之间用&连接例如:Process p = Runtime.getRuntime().exec(&q
- Vibrator振动器,是手机自带的振动器哦,不要想成岛国用的那种神秘东西哦~~Vibrator是Android给我们提供的用于机身震动的一
- 本文实例为大家分享了java实现打字游戏的具体代码,供大家参考,具体内容如下import java.util.Random;import j
- 介绍Tuple是异类对象的有序序列。 我们经常可以写出返回多个值的方法,所以我们需要创建一个包含多个数据元素的简单结构。 为了支持这些情况,
- 前面有文章介绍了使用GridView实现表格的方法,本文就来说说如何用ListView实现自适应的表格。GridView比ListView更
- 笔者发现在很多应用中,都有自动获取验证码的功能:点击获取验证码按钮,收到短信,当前应用不需要退出程序就可以获取到短信中的验证码,并自动填充。