有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在2d数组中查找特定元素

所以我有一个项目,其中一部分系统发送了一个2d数组进行处理。从这里开始,如果数组中有特定的数字,处理程序会查看整个数组并播放声音。我想知道是否有办法在数组中循环查找特定元素。当前代码下面是我想做的一个示例。我应该把它变成一个类而不是循环吗

我想要的是: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");
    }
   }
  }
 }  

共 (1) 个答案

  1. # 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将被完全跳过,因为在您的代码中,您正在检查不同的内容,例如等于1、2或3的int,那么在最大值下,这些内容中只能有一个是真的。因此,如果检查其余部分是否正确,则没有意义