做一个关于对象数组的问题,需要对对象数组进行分阶段的修改,但是当前阶段判断的依据是当前的对象数组的情况,如果边判断边修改会影响判断结果,比如 假设对象数组 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. LeetCode实战:2的幂
  2. HTAP数据库 PostgreSQL 场景与性能测试之 28 - (OLTP) 高并发点更新
  3. ELK 分析 nginx access 日志
  4. Python自定义词云图形状和文本颜色
  5. Swift之类型转换
  6. 问题 H: Search Problem (V)
  7. leetcode题库283-- 移动零
  8. 浅谈内联元素inline
  9. 达观杯文本智能处理(6)
  10. 删除链表倒数第N个节点
  11. ROS机器人程序设计课程反思-2022终篇-
  12. Apache CXF 框架结构和基本原理
  13. android九游sdk,九游单机SDK接入常见问题
  14. Java拼图游戏,老程序员花两天搞定,你呢?
  15. html效果浮窗效果,jQuery实现侧浮窗与中浮窗切换效果的方法
  16. 非三星手机无法登录三星账号_如何解决所有三星手机的烦恼
  17. android加载.swf flash文件
  18. VS2005错误 error PRJ0003 生成 cmd.exe 时出错
  19. [WinError 206] 文件名或扩展名太长(组策略值修改 解除windows文件名 字符长度限制)
  20. java代码安全检测机制,下列选项中,属于Java语言的代码安全检测机制的一项是______。A.动态链接B.访问权限的检查C.通过接...

热门文章

  1. Hyper-V网络虚拟化--VM之间拷贝速度慢
  2. EthChannel和STP01
  3. GIS和开源见解(摘录)
  4. 高度设置为100%无效的解决办法
  5. 11.微服务设计 --- 规模化微服务
  6. 7.PHP核心技术与最佳实践 --- PHP 扩展开发
  7. 8.高性能MySQL --- 优化服务器设置
  8. 3. vi 简介(3)
  9. 终于给cs来了一次小整容
  10. Python学习三|列表、字典、元组、集合的特点以及类的一些定义