做一个关于对象数组的问题,需要对对象数组进行分阶段的修改,但是当前阶段判断的依据是当前的对象数组的情况,如果边判断边修改会影响判断结果,比如 假设对象数组 grid[][]如下 gridOld[][] = grid[][]

a b c d

b c d a

如果一个位置相邻(上下左右四个方向)的和它自己都不一样,那么变成数量多的那个,有一样的就不变

现在第一行的 a 下一次应该变为b ,第一行的b下一次应该变为c

如果判断是根据gridOld而修改的是grid,因为“=”是相当于引用,所以修改grid也会影响gridOld,调试时可以看到他们指向相同一块内存

所以结果就是 a 下一次是b,而b下一次还是b,因为原来的第一个a已经被修改为b了

原来试过clone()方法,但是由于时间紧迫,不知道是用法不对还是需要重写,在对象数组克隆时情况和直接用等号相同,所以后来就自己写了一个比较无奈的遍历重建对象数组的方法。

//cells和cellOld是Cell[sizeGrid][sizeGrid]的二维数组

double random;

for(int i = 0; i

for(int j = 0; j

if(cells[i][j] instanceof MutatedCell){//判断当前格子是三种情况的哪一种

MutatedCell mC = new MutatedCell();//新建一个同类型对象

cellOld[i][j]=mC;//赋值给cellOld中对应位置

}else if(cells[i][j] instanceof NormalCell){

NormalCell nC = new NormalCell();//如果带可变的属性,需要在把属性赋值给新建的对象

nC.setstamina(((NormalCell) cells[i][j]).getstamina());//保持两个对象内容相同

cellOld[i][j]=nC;

}else if(cells[i][j] instanceof DeadCell){

DeadCell dC = new DeadCell();

cellOld[i][j]=dC;

}

}

}

在接下来的根据cellOld的判断而修改cells内容的过程中就不会出现问题,但是在每一次将数据遍历一遍后,新的一遍又要重复上述复制过程,感觉效率很低。不知道有没有比较快捷的方法,望指点。

java赋值两个对象数组 clone_Java:类的两个相同对象数组的克隆问题相关推荐

  1. Java之数组的定义格式,【默认值规则】,Java内存划分5大区,面向对象类的基本定义和对象的使用,private和this关键字,类的构造方法,标准类的组成部分。

    目录 1.数组 动态初始化数组的格式: 默认值规则 静态初始化数组的格式: 静态方式的省略格式 注意: 2.java的内存划分 3.数组内存图 4.数组常见的问题 5.面向对象 (1)类和对象 (2) ...

  2. python为什么要实例化对象_python:类的定义、实例化对象

    定义:类的定义使用关键字 ,class 关键字: 封装:类可以把各种对象组织在一起,作为类的属性,通过 . (点)运算符来调用类中封装好的对象 属性:变量在类中称为属性,但是类中的属性不仅仅只包含变量 ...

  3. java 对象 转换 工具类_Java中excel与对象的互相转换的通用工具类编写与使用(基于apache-poi-ooxml)...

    通用excel与对象相互转换的工具类 前言:最近开发需要一个Excel批量导入或者导出的功能,之前用过poi-ooxml开发过一个导入的工具类,正好蹭着这次机会,把工具类的功能进行完善. 使用说明: ...

  4. java在类中创建自己对象_java 在类中创建自己的对象

    public class A() { int yy=0; public static void main(String[] agrs) { A aa=new A(); } } 我想知道的是,A是一个类 ...

  5. 02_3中方式的反射,通过Class.forName获得Class对象,通过类.class获得字节码对象,通过类实例.getClass()的方式获得Class对象

     反射中加载类: Java中有一个Class类用于代表某一个类的字节码 .class文件    对应Class //1 加载类 // java中Class代表一个类,但是到底代表哪个类要明确指出 ...

  6. php判断对象属于哪个类,PHP instanceof:判断对象是否属于某个类

    使用 PHP 中的 instanceof 运算符,可以判断一个对象是否属于某一个类,语法格式如下: 对象名 instanceof 类名; [示例]使用 instanceof 判断一个对象是否属于某个类 ...

  7. java中bitconverter_【Java】BitConverter(数字转字节数组工具类)

    import java.nio.ByteOrder; import java.nio.charset.Charset; /** * 数字转字节数组工具类 */ public class BitConv ...

  8. 教妹学Java:数组专用工具类 Java.util.Arrays

    数组专用工具类 "哥,数组专用工具类是专门用来操作数组的吗?比如说创建数组.数组排序.数组检索等等."三妹的提问其实已经把答案说了出来. "是滴,这里说的数组专用工具类指 ...

  9. 第四周 Java语法总结_内部类_常用类_getclass_toStrong_equals_clone_Scanner_String_StringBuffer_Integer_集合_插入排序

    文章目录 20.内部类 1.格式 2.外部类访问内部类 3.局部内部类 4.匿名内部类 1)方法的形式参数是接口 2)关于匿名内部类在开发中的使用 3)方法的返回值是接口或抽象类型 16.常用类 1. ...

  10. C++设计模式——适配器模式(对象适配器、类适配器)

    http://blog.jobbole.com/109381/?winzoom=1 前言 现在的笔记本都只存在USB接口,用来口,电脑上存在的是USB接口,两者如何通信呢?可以使用USB转串口线连接电 ...

最新文章

  1. 【每日一算法】二叉树的层次遍历 II
  2. HDU (1575)Tr A ---矩阵快速幂
  3. 信息系统项目管理师-知识管理知识点
  4. VTK:动轴用法实战
  5. 福建省计算机学会 noip比赛,重磅!福州一三附学生领衔全省前九名!他们将代表福建参加全国比赛!...
  6. 如何在 ASP.NET Core 中发送邮件
  7. java url帮助类_Spring居然还提供了这么好用的URL工具类
  8. React Portals与Error Boundaries
  9. 左室短轴切面_【图】短轴超声切面 - 心脏解剖学 - 天山医学院
  10. python后台架构Django教程——manage.py命令
  11. 新萝卜家园Ghost XP SP3电脑城装机版2013.08
  12. Ubuntu20.04 Clion/Pycharm/IDEA 输入中文+光标跟随解决方案
  13. php在简历模版文件,PHP简历模板
  14. 机器学习——葡萄酒分类问题(输入与输出维度相同)
  15. 苹果公司CEO乔布斯演讲的15个秘诀
  16. Android沉浸式全面讲解(一)
  17. 五、原型模式(Prototype Pattern)
  18. protect your eyes - 豆绿色
  19. 基于HDP使用Flume实时采集MySQL中数据传到Kafka
  20. 自动驾驶决策规划算法第一章笔记 忠厚老实的老王

热门文章

  1. phpcmsv9 更换域名出现页面无法访问后怎么办
  2. C++day14 学习笔记
  3. 41.Linux/Unix 系统编程手册(下) -- 共享库基础
  4. Swing 线程之SwingUtilities.invokeLater()
  5. 《数学之美》—闪光的不一定是金子
  6. QATF自动化测试框架
  7. 从后台servlet中,获取jsp页面输入的值,来删除用户一行信息
  8. win10总是2分钟就自动睡眠怎么办 win10系统自动休眠bug怎么解决(转)
  9. img 图片加载出错时 显示默认图片
  10. SVN部署与简单使用