Java 我能';t在树映射中访问int[]

Java 我能';t在树映射中访问int[],java,arrays,list,Java,Arrays,List,我有一个对象列表: static List table_rows = new ArrayList(); 我想用树形图填充它,树形图由一个字符串和一个整数数组对象组成: for (int i = 0; i < observation_files.length; i++) { TreeMap<String, Integer[]> tm = new TreeMap<String, Integer[]>(); Integer[] c

我有一个对象列表:

static List table_rows = new ArrayList();
我想用树形图填充它,树形图由一个字符串和一个整数数组对象组成:

    for (int i = 0; i < observation_files.length; i++) {
        TreeMap<String, Integer[]> tm = new TreeMap<String, Integer[]>();
        Integer[] cells = new Integer[observation_files.length];
        for (int x = 0; x < cells.length; x++) {
            cells[x] = 0;
        }
        tm.put("model" + i, cells);
        table_rows.add(tm);
    }
但eclipse不允许我这样做,并给了我以下错误:

 Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    The method get(String) is undefined for the type Object
    Syntax error on token ".", Identifier expected after this token

        at HmmPipeline.main(HmmPipeline.java:102)
代码提示或完成没有给我任何东西可以处理,我做错了什么?

RawArrayList.get()返回类型对象。如果希望它返回
TreeMap
,则应将列表声明为:

static List<TreeMap<String, Integer[]>> table_rows = new ArrayList<TreeMap<String, Integer[]>>();
static List table_rows=new ArrayList();
如果您使用像Eclipse这样的IDE,最好将代码编译选项设置为在使用原始(未参数化)类型时显示警告。尽管它应该把你的代码标记为无效

顺便说一句,您试图做的并不是一种非常有效的存储基本上是二维正方形数组的方法。

Raw
ArrayList.get()
返回type
Object
。如果希望它返回
TreeMap
,则应将列表声明为:

static List<TreeMap<String, Integer[]>> table_rows = new ArrayList<TreeMap<String, Integer[]>>();
static List table_rows=new ArrayList();
如果您使用像Eclipse这样的IDE,最好将代码编译选项设置为在使用原始(未参数化)类型时显示警告。尽管它应该把你的代码标记为无效


顺便说一句,您试图做的并不是一种非常有效的存储基本上是二维正方形数组的方法。

您需要强制转换
表行。获取(0)
(树映射)
或在
表行
声明中定义:

static List<TreeMap<String, Integer[]>> table_rows = new ArrayList<TreeMap<String, Integer[]>>();
static List table_rows=new ArrayList();

您需要将
表格行强制转换为
(0)
(TreeMap)
或在
表格行声明中定义:

static List<TreeMap<String, Integer[]>> table_rows = new ArrayList<TreeMap<String, Integer[]>>();
static List table_rows=new ArrayList();
试试看

static List table_rows=new ArrayList();
或者,您需要进行如下的演员阵容:

((TreeMap<String, Integer[]>)table_rows.get(0)).get("model1")[0] = 2;
((TreeMap)表_rows.get(0)).get(“model1”)[0]=2;

此外,根据您感兴趣的功能,您可以使用以下接口类型之一的引用来引用您的
TreeMap
-

  • Map
  • NavigableMap
  • SortedMap
试试看

static List table_rows=new ArrayList();
或者,您需要进行如下的演员阵容:

((TreeMap<String, Integer[]>)table_rows.get(0)).get("model1")[0] = 2;
((TreeMap)表_rows.get(0)).get(“model1”)[0]=2;

此外,根据您感兴趣的功能,您可以使用以下接口类型之一的引用来引用您的
TreeMap
-

  • Map
  • NavigableMap
  • SortedMap

1。您需要声明要使用的ArrayList的类型

static List<TreeMap<String, Integer[]>> table_rows = new ArrayList<TreeMap<String, Integer[]>>();

1。您需要声明要使用的ArrayList的类型

static List<TreeMap<String, Integer[]>> table_rows = new ArrayList<TreeMap<String, Integer[]>>();

我知道,但我需要能够根据字符串而不是索引号来寻址单元格。事实上,我最终得到了一排树映射,它们本身就在其中。我知道,但我需要能够根据字符串而不是索引号来寻址单元格。事实上,我最终拥有了一排排树,而树本身就是这样。