Java 最优数据结构查询
我有二维整数数组(ixj)的细胞模拟为海洋 i是宽度,j是高度Java 最优数据结构查询,java,data-structures,Java,Data Structures,我有二维整数数组(ixj)的细胞模拟为海洋 i是宽度,j是高度 private int[][] ocean = new int[j][i]; 我将通过指定这样的整数来放置鲨鱼和鱼 public final static int EMPTY = 0; public final static int SHARK = 1; public final static int FISH = 2; 15%的细胞充满了鲨鱼 50%的细胞充满了鱼 但我也只想保持鲨鱼的饥饿水平 任何鲨鱼的饥饿水平都将为1、
private int[][] ocean = new int[j][i];
我将通过指定这样的整数来放置鲨鱼和鱼
public final static int EMPTY = 0;
public final static int SHARK = 1;
public final static int FISH = 2;
15%的细胞充满了鲨鱼
50%的细胞充满了鱼
但我也只想保持鲨鱼的饥饿水平
任何鲨鱼的饥饿水平都将为1、2或3
那么,我应该使用什么额外的数据结构来维护饥饿级别信息呢
假设,我只知道数组和linkedlist。对于java,您应该尝试使用一些面向对象的设计模型 您可以定义一个抽象类
Fish
和子类Shark
和Herring
,这样Shark
就可以有一个属性hungerLevel
和一个方法feed()
然后,您可以将有关海洋的信息保存在一个2D数组中,该数组由鱼组成
:鱼[][]
。
但是由于您的海洋可能有额外的责任,我认为还应该有一个
ocean
-类来包含数组和一些额外的信息。对于java,您应该尝试使用一些面向对象的设计模型
您可以定义一个抽象类Fish
和子类Shark
和Herring
,这样Shark
就可以有一个属性hungerLevel
和一个方法feed()
然后,您可以将有关海洋的信息保存在一个2D数组中,该数组由鱼组成
:鱼[][]
。
但是由于您的海洋可能有额外的责任,我认为还应该有一个
ocean
-类来包含数组和一些额外的信息。对于java,您应该尝试使用一些面向对象的设计模型
您可以定义一个抽象类Fish
和子类Shark
和Herring
,这样Shark
就可以有一个属性hungerLevel
和一个方法feed()
然后,您可以将有关海洋的信息保存在一个2D数组中,该数组由鱼组成
:鱼[][]
。
但是由于您的海洋可能有额外的责任,我认为还应该有一个
ocean
-类来包含数组和一些额外的信息。对于java,您应该尝试使用一些面向对象的设计模型
您可以定义一个抽象类Fish
和子类Shark
和Herring
,这样Shark
就可以有一个属性hungerLevel
和一个方法feed()
然后,您可以将有关海洋的信息保存在一个2D数组中,该数组由鱼组成
:鱼[][]
。
但是,由于您的海洋可能有额外的职责,我认为还应该有一个
ocean
-类来包含数组和一些额外的信息。是的,我创建了这样的海洋类。public class ocean{public final static int EMPTY=0;public final static int SHARK=1;public final static int FISH=2;public final static int UNKNOWN=-1;private int width;private int[][]矩阵;//private int[][]饥饿;需要考虑优化private int饥饿时间;…}是的,我创建了这样的ocean类。公共类ocean{private int width;private int height;private int[][]oceanMatrix;//private int[][]饥饿;需要考虑优化private int饥饿时间;private static int timeStep=0;公共海洋(int I,int j,int饥饿时间){this.width=i;this.height=j;this.oceanMatrix=new int[j][i];this.饥饿时间=饥饿时间;for(int col=0;col