当前位置: 首页 > news >正文

东莞企业网站排名优化优酷网站模板下载

东莞企业网站排名优化,优酷网站模板下载,手机上可以编程的app,绥化市新闻最新消息前言 这个主要就是想记录一个点,就是二维数组保存的元素就是一维数组的地址,这个概念大家都知道了,那么接下来就是我最近写程序发生的一个事情了。 随机打乱一个一维数组 这个程序我相信大家都是会写的,通过randomArr来随机打乱…

前言

这个主要就是想记录一个点,就是二维数组保存的元素就是一维数组的地址,这个概念大家都知道了,那么接下来就是我最近写程序发生的一个事情了。

随机打乱一个一维数组

这个程序我相信大家都是会写的,通过randomArr来随机打乱整个数组,之后通过printArr输出即可,那如果把调用循环来打乱数组,并且把打乱的数组储存在二维数组中又会发生什么情况呢。

import java.util.Random;public class Test {public static void main(String[] args) {int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};printArr(randomArr(arr));}//打乱整个数组public static int[] randomArr(int[] arr) {Random r = new Random();for (int i = 0; i < arr.length; i++) {//随机生成两个坐标int pos1 = r.nextInt(arr.length);int pos2 = r.nextInt(arr.length);int tmp = arr[pos1];arr[pos1] = arr[pos2];arr[pos2] = tmp;}return arr;}//输出整个数组public static void printArr(int[] arr) {System.out.print("[");for (int i = 0; i < arr.length; i++) {if (i != arr.length - 1) {System.out.print(arr[i] + ",");} else {System.out.print(arr[i]);}}System.out.println("]");}
}

 随机打乱二维数组里面的一维数组

import java.util.Random;public class Test {public static void main(String[] args) {int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};int[][] res = new int[5][arr.length];for (int i = 0; i < res.length; i++) {//后面打乱依赖前面打乱生成的res[i] = randomArr(arr);printArr(randomArr(arr));}}//打乱整个数组public static int[] randomArr(int[] arr) {Random r = new Random();for (int i = 0; i < arr.length; i++) {//随机生成两个坐标int pos1 = r.nextInt(arr.length);int pos2 = r.nextInt(arr.length);int tmp = arr[pos1];arr[pos1] = arr[pos2];arr[pos2] = tmp;}return arr;}//输出整个数组public static void printArr(int[] arr) {System.out.print("[");for (int i = 0; i < arr.length; i++) {if (i != arr.length - 1) {System.out.print(arr[i] + ",");} else {System.out.print(arr[i]);}}System.out.println("]");}
}

程序运行结果如下:

[5,4,9,6,1,8,3,2,7]
[7,1,4,5,2,8,9,3,6]
[7,3,2,5,6,1,8,9,4]
[7,5,3,1,8,6,2,4,9]
[3,9,4,8,7,6,5,1,2]

理论上也确实是这个结果,但是此时res数组里面的元素呢?

import java.util.Random;public class Test6 {public static void main(String[] args) {int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int[][] res = new int[5][arr.length];for (int i = 0; i < res.length; i++) {//后面打乱依赖前面打乱生成的res[i] = randomArr(arr);}//打印resfor (int i = 0; i < res.length; i++) {printArr(res[i]);}}//打乱整个数组public static int[] randomArr(int[] arr) {Random r = new Random();for (int i = 0; i < arr.length; i++) {//随机生成两个坐标int pos1 = r.nextInt(arr.length);int pos2 = r.nextInt(arr.length);int tmp = arr[pos1];arr[pos1] = arr[pos2];arr[pos2] = tmp;}return arr;}//输出整个数组public static void printArr(int[] arr) {System.out.print("[");for (int i = 0; i < arr.length; i++) {if (i != arr.length - 1) {System.out.print(arr[i] + ",");} else {System.out.print(arr[i]);}}System.out.println("]");}
}

程序运行结果如下:

[2,7,4,3,9,6,8,5,1]
[2,7,4,3,9,6,8,5,1]
[2,7,4,3,9,6,8,5,1]
[2,7,4,3,9,6,8,5,1]
[2,7,4,3,9,6,8,5,1]

此时会发现,二维数组的输出结果都是一样的,通过打印地址会发现,输出的地址都是一致的。

于是我们很快的可以想到,方法传递数组是传递的地址值,也就是最终我们在原数组中进行了修改,然后返回他,res数组里面的元素就都是arr,所以最终的值是一样的,那么我们又该如何解决呢?

可以对返回的数组重新给他开辟一片空间即可。(注意最后拷贝的时候不能是直接用数组名进行赋值,用数组名最终是将新创建的数组指向传进来的那个数组,我们需要的是拷贝每一个元素)

import java.util.Random;public class Test {public static void main(String[] args) {int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};int[][] res = new int[5][arr.length];for (int i = 0; i < res.length; i++) {//后面打乱依赖前面打乱生成的res[i] = randomArr(arr);}//打印resfor (int i = 0; i < res.length; i++) {printArr(res[i]);}}//打乱整个数组public static int[] randomArr(int[] arr) {Random r = new Random();int []res=new int[arr.length];for (int i = 0; i < arr.length; i++) {//随机生成两个坐标int pos1 = r.nextInt(arr.length);int pos2 = r.nextInt(arr.length);int tmp = arr[pos1];arr[pos1] = arr[pos2];arr[pos2] = tmp;}//拷贝元素,不能直接用res=arr;for (int i = 0; i < arr.length; i++) {res[i]=arr[i];}return res;}//输出整个数组public static void printArr(int[] arr) {System.out.print("[");for (int i = 0; i < arr.length; i++) {if (i != arr.length - 1) {System.out.print(arr[i] + ",");} else {System.out.print(arr[i]);}}System.out.println("]");}
}

http://www.yayakq.cn/news/884154/

相关文章:

  • 个人网站建设一般流程wordpress 搜索分页
  • 怎么把网站设置为主页面网络游戏制作软件
  • 南通营销网站开发施工企业会计核算实务
  • 泗洪县建设局网站怎么查不到域名注册商查询工具
  • 网站开发需要服务器吗网上黑赌网站如何做代理
  • 绿色家园网站怎么做广州做礼物的网站
  • 网站设计有哪几种设计方法网站的优化哪个好
  • 杭州网站开发工程师建筑英才招聘网首页
  • 福州网站建设电话聊城网站建设有限公司
  • vpswindows学生18公交车上泽成seo网站排名
  • 大连开发区网站制作建设公司沈阳最新数据消息
  • 大学网站开发的流程系统首页设计图
  • 怎么建设一个属于自己的网站济南建站公司注意什么
  • 网站建设服务费怎么做会计分录合肥有哪些公司是做网站的
  • 快速做网站的方法网站建设需要在哪备案
  • 临沂网站企业怎样选择域名做网站
  • 网站视频下载windows义乌专业做网站的公司
  • joomla 2.5:你的网站建设_使用与管理深圳网站建设 百度一下
  • 网站流量团队防城港网站开发
  • 企业门户网站建设的必要性i深圳app官方下载
  • 双鸭山网站建设实木家具全屋定制十大名牌
  • .net网站开发免费教程全国企业信用信息查询系统官网
  • 跨境购物网站建设网站建设哪家go好
  • 做网站策划书吧电商网站设计周志
  • 门户网站开发费需入无形资产网络舆情监测工作总结
  • 南昌建设网站grimhelm.wordpress
  • 唐山哪里做网站网站开发进度确认单
  • 网站集约化建设 要求建设银行北京招聘网站
  • 简述php网站开发流程图孵化器网站建设
  • 大连网站建设报价优质商家学历提升图片