如何投射ArrayList <linkedhashmap <string,comparative =“”>&gt;比较?

时间:2016-05-16 08:47:02

标签: java arraylist linkedhashmap

我想将y添加到x:

x.put("y", (Comparable) y);

y定义为:

ArrayList<LinkedHashMap<String, Comparable>> y = new ArrayList<LinkedHashMap<String, Comparable>>();

的输出示例
  

y = [{c = 32,a = 1,b = 2},{c = 33,a = 4,b = 5}]

x定义为:

LinkedHashMap<String, Comparable> x = new LinkedHashMap<String, Comparable>();

我收到此错误:java.util.ArrayList无法转换为java.lang.Comparable我想要的地方:x.put(&#34; y&#34;,(Comparable)y);如果我删除了可比较的,它表明日食中存在错误。 有什么建议吗?

/伊尔哈姆

2 个答案:

答案 0 :(得分:1)

如果这是您想要的,您可以创建一个类似的类

public class Page1ViewModel : BindableBase
{
    private readonly TextBoxModel _firstName = new TextBoxModel();

    public Page1ViewModel()
    {
        _firstName.PropertyChanged += 
            (sender, args) => SubmitCommand.RaiseCanExecuteChanged();
    }

    public TextBoxModel FirstName 
    {
        get { return _firstName; }
    }
}

private static class CompArrayList extends ArrayList<LinkedHashMap<String, Comparable>> implements Comparable { @Override public int compareTo(Object o) { return 0; } } 方法中定义您想要的任何内容,并使用此类

定义y
compareTo()

现在y是CompArrayList y = new CompArrayList () ,您可以将其添加到地图

答案 1 :(得分:0)

好的,谢谢你的回答。通过使用以下内容替换x和y来解决此问题: 的ArrayList&GT; y = new ArrayList&lt;&gt;(); Map x = new HashMap&lt;&gt;();

然后使用:x.put(“y”,y);