如何以编程方式在二维数组中插入值?

时间:2012-05-25 09:11:19

标签: java android arrays multidimensional-array arraylist

我想在java中动态执行此操作。我知道如何在单维数组中插入值。我在二维数组中有点困惑。

static final String shades[][] = {


 // Shades of grey
  {
    "lightgrey", 
    "dimgray", 
    "sgi gray 92", 
  },
 // Shades of blue
  {
    "dodgerblue 2", 
    "steelblue 2", 
    "powderblue", 
  },
// Shades of yellow
  {
    "yellow 1",
    "gold 1",
    "darkgoldenrod 1", 
  },
 // Shades of red
  {
    "indianred 1", 
    "firebrick 1", 
    "maroon", 
  }
};

6 个答案:

答案 0 :(得分:8)

String[][] shades = new String[intSize][intSize];
 // print array in rectangular form
 for (int r=0; r<shades.length; r++) {
     for (int c=0; c<shades[r].length; c++) {
         shades[r][c]="hello";//your value
     }
 }

答案 1 :(得分:5)

尝试在下面编码,

String[][] shades = new String[4][3];
for(int i = 0; i < 4; i++)
{
  for(int y = 0; y < 3; y++)
  {
    shades[i][y] = value;
  }
}

答案 2 :(得分:1)

由于数组长度不可变,因此无法向数组“添加”值。您可以在特定的阵列位置设置值。

如果您知道如何使用一维数组,那么您就知道如何使用n维数组:Java中没有n维数组,只有数组数组(数组......)。

但是你可以链接索引运算符以进行数组元素访问。

String[][] x = new String[2][];
x[0] = new String[1];
x[1] = new String[2];

x[0][0] = "a1";
    // No x[0][1] available
x[1][0] = "b1";
x[1][1] = "b2";

请注意,子数组的维度不需要匹配。

答案 3 :(得分:0)

将其视为数组数组。

如果你执行str [x] [y],那么有一个长度为x的数组,其中每个元素又包含长度为y的数组。在java中,第二维的长度不必相同。 所以对于x = i,你可以得到y = m和x = j你可以得到y = n

为此,您的声明似乎是

String [] [] test = new String [4] []; test [0] = new String [3]; test [1] = new String [2];

等。

答案 4 :(得分:0)

如果您事先不知道要处理多少个元素,那么最好改用集合(https://en.wikipedia.org/wiki/Java_collections_framework)。还可以创建一个新的更大的二维数组,将旧数据复制并在其中插入新项目,但是收集框架会自动为您处理。

在这种情况下,您可以使用字符串映射到字符串列表:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MyClass {
    public static void main(String args[]) {
        Map<String, List<String>> shades = new HashMap<>();

        ArrayList<String> shadesOfGrey = new ArrayList<>();
        shadesOfGrey.add("lightgrey");
        shadesOfGrey.add("dimgray");
        shadesOfGrey.add("sgi gray 92");

        ArrayList<String> shadesOfBlue = new ArrayList<>();
        shadesOfBlue.add("dodgerblue 2");
        shadesOfBlue.add("steelblue 2");
        shadesOfBlue.add("powderblue");

        ArrayList<String> shadesOfYellow = new ArrayList<>();
        shadesOfYellow.add("yellow 1");
        shadesOfYellow.add("gold 1");
        shadesOfYellow.add("darkgoldenrod 1");

        ArrayList<String> shadesOfRed = new ArrayList<>();
        shadesOfRed.add("indianred 1");
        shadesOfRed.add("firebrick 1");
        shadesOfRed.add("maroon 1");

        shades.put("greys", shadesOfGrey);
        shades.put("blues", shadesOfBlue);
        shades.put("yellows", shadesOfYellow);
        shades.put("reds", shadesOfRed);

        System.out.println(shades.get("greys").get(0)); // prints "lightgrey"
    }
}

答案 5 :(得分:-1)

this is output of this program

     if (  indexPath.row == 0) 
        {
    self.storyboard?.instantiateViewControllerWithIdentifier("CreateViewControllerid") as! CreateViewController.
   self.navigationController?.pushViewController(secondViewController, animated: true)

      }