java赋值两个对象数组 clone_Java:类的两个相同对象数组的克隆问题
做一个关于对象数组的问题,需要对对象数组进行分阶段的修改,但是当前阶段判断的依据是当前的对象数组的情况,如果边判断边修改会影响判断结果,比如 假设对象数组 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:类的两个相同对象数组的克隆问题相关推荐
- Java之数组的定义格式,【默认值规则】,Java内存划分5大区,面向对象类的基本定义和对象的使用,private和this关键字,类的构造方法,标准类的组成部分。
目录 1.数组 动态初始化数组的格式: 默认值规则 静态初始化数组的格式: 静态方式的省略格式 注意: 2.java的内存划分 3.数组内存图 4.数组常见的问题 5.面向对象 (1)类和对象 (2) ...
- python为什么要实例化对象_python:类的定义、实例化对象
定义:类的定义使用关键字 ,class 关键字: 封装:类可以把各种对象组织在一起,作为类的属性,通过 . (点)运算符来调用类中封装好的对象 属性:变量在类中称为属性,但是类中的属性不仅仅只包含变量 ...
- java 对象 转换 工具类_Java中excel与对象的互相转换的通用工具类编写与使用(基于apache-poi-ooxml)...
通用excel与对象相互转换的工具类 前言:最近开发需要一个Excel批量导入或者导出的功能,之前用过poi-ooxml开发过一个导入的工具类,正好蹭着这次机会,把工具类的功能进行完善. 使用说明: ...
- java在类中创建自己对象_java 在类中创建自己的对象
public class A() { int yy=0; public static void main(String[] agrs) { A aa=new A(); } } 我想知道的是,A是一个类 ...
- 02_3中方式的反射,通过Class.forName获得Class对象,通过类.class获得字节码对象,通过类实例.getClass()的方式获得Class对象
反射中加载类: Java中有一个Class类用于代表某一个类的字节码 .class文件 对应Class //1 加载类 // java中Class代表一个类,但是到底代表哪个类要明确指出 ...
- php判断对象属于哪个类,PHP instanceof:判断对象是否属于某个类
使用 PHP 中的 instanceof 运算符,可以判断一个对象是否属于某一个类,语法格式如下: 对象名 instanceof 类名; [示例]使用 instanceof 判断一个对象是否属于某个类 ...
- java中bitconverter_【Java】BitConverter(数字转字节数组工具类)
import java.nio.ByteOrder; import java.nio.charset.Charset; /** * 数字转字节数组工具类 */ public class BitConv ...
- 教妹学Java:数组专用工具类 Java.util.Arrays
数组专用工具类 "哥,数组专用工具类是专门用来操作数组的吗?比如说创建数组.数组排序.数组检索等等."三妹的提问其实已经把答案说了出来. "是滴,这里说的数组专用工具类指 ...
- 第四周 Java语法总结_内部类_常用类_getclass_toStrong_equals_clone_Scanner_String_StringBuffer_Integer_集合_插入排序
文章目录 20.内部类 1.格式 2.外部类访问内部类 3.局部内部类 4.匿名内部类 1)方法的形式参数是接口 2)关于匿名内部类在开发中的使用 3)方法的返回值是接口或抽象类型 16.常用类 1. ...
- C++设计模式——适配器模式(对象适配器、类适配器)
http://blog.jobbole.com/109381/?winzoom=1 前言 现在的笔记本都只存在USB接口,用来口,电脑上存在的是USB接口,两者如何通信呢?可以使用USB转串口线连接电 ...
最新文章
- LeetCode实战:2的幂
- HTAP数据库 PostgreSQL 场景与性能测试之 28 - (OLTP) 高并发点更新
- ELK 分析 nginx access 日志
- Python自定义词云图形状和文本颜色
- Swift之类型转换
- 问题 H: Search Problem (V)
- leetcode题库283-- 移动零
- 浅谈内联元素inline
- 达观杯文本智能处理(6)
- 删除链表倒数第N个节点
- ROS机器人程序设计课程反思-2022终篇-
- Apache CXF 框架结构和基本原理
- android九游sdk,九游单机SDK接入常见问题
- Java拼图游戏,老程序员花两天搞定,你呢?
- html效果浮窗效果,jQuery实现侧浮窗与中浮窗切换效果的方法
- 非三星手机无法登录三星账号_如何解决所有三星手机的烦恼
- android加载.swf flash文件
- VS2005错误 error PRJ0003 生成 cmd.exe 时出错
- [WinError 206] 文件名或扩展名太长(组策略值修改 解除windows文件名 字符长度限制)
- java代码安全检测机制,下列选项中,属于Java语言的代码安全检测机制的一项是______。A.动态链接B.访问权限的检查C.通过接...