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

时间:2015-02-22 05:43:50

标签: java multidimensional-array

所以我有一个项目,其中一部分系统将2d数组发送到Processing。如果某些数字在数组中,则Processing会查看数组并播放声音。我想知道是否有办法循环并查找数组中的特定元素。当前代码低于我想要做的一个例子。我还应该把它变成一个类而不是循环吗?

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

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");
    }
   }
  }
 }  

1 个答案:

答案 0 :(得分:1)

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

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将被完全跳过,因为在您的代码中,您正在检查不同的东西,例如int等于1,2或3,那么在最大值中只有一个可以为真。因此,检查其余部分是否属实是没有意义的。