java - 寻找二维数组中的特定元素

标签 java multidimensional-array

所以我有一个项目,其中系统的一部分将二维数组发送到处理。从那里,处理会检查数组,如果数组中存在某些数字,则播放声音。我想知道是否有一种方法可以循环并查找数组中的特定元素。当前代码如下是我想要做的事情的示例。另外我应该把它作为一个类而不是循环吗?

我想要的是:Int[][] x = {1,{3,2,4},2}。如果看到 2,则处理 ping;如果看到 1,则处理 pong。

int [][] loops = {{1},{3,2,4},{1}};

void mousePressed()
{
  for (int i =0; i < loops.length;i++)
  {
    println("i = " + i);
    for (int j = 0; j < loops[i].length; j++)
    {
    println("j = " + j);
    if (loops[i][j] == 1) 
    {
     delay(1500);
     println("silence " + j) ;
    }    
    if (loops[i][j] == 2);
    {
      song2.rewind();          // Rewind sounds for future playback
      int y = millis();        // Temp Variable 
      song2.play();            // Self Explanitory
      delay(song2.length()); 
      println("dingdong " + j);
     }
    if (loops[i][j] == 3) 
    {
    println("Start Loop");
    }
   }
  }
 }  

最佳答案

您可以创建一个非常简单的方法来搜索数组并在代码中使用它。例如

public static boolean hasInt (int[][] list, int input)
{
    for(int i=0;i<list.length;i++)
    {
        for(int j=0;j<list[i].length;j++)
        {
            if(list[i][j]==input)
            return true;
        }
    }
    return false;
}

此外,在使用左大括号 { 后或任何时候创建循环或条件时,您都应该缩进,因为这会使您的代码更具可读性。另外,不要使用一堆 if,而是使用 else if。如果满足前面的条件,则 else if 将被完全跳过,因为在您的代码中您正在检查不同的东西,例如等于 1、2 或 3 的 int,那么最多只能其中一个可以是真实的。因此,检查其余部分是否正确是没有意义的。

关于java - 寻找二维数组中的特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28654950/

相关文章:

python-3.x - 在空心方形薄片内生成随机均匀分布点的 Pythonic 方法

c++ - 尝试将文本文件加载到动态分配的二维数组时出现 bad_array_new_length 错误

java - 将我的 java 应用程序设置为 Windows 服务

java - 如何使用 Jackson 创建这个 json 字符串?

java - Java中静态和非静态方法的调用

c - C语言中如何使用指向多维数组的指针?

python - 堆叠具有一个不同维度的多维 numpy 数组

javascript - 沿对 Angular 线遍历二维数组(矩阵)

java - 无法让谷歌教程工作

java - 为什么我的膨胀后的 ImageView 的高度和宽度都是 0?