如何从HashMap返回最后添加的值

时间:2015-04-24 12:50:34

标签: java list arraylist hashmap

我正在尝试编写一个返回hashmap中最后一个添加值的泛型函数。我为ArrayList创建了相同的方法,但我不知道如何为HashMap创建它

public <T><T> T lastAddedObj(HashMap<Integer, T> list) {
        // TODO Auto-generated method stub
        if (list != null) {
            if (!list.isEmpty()) {
                return list.get(( list.size() - 1) );
            } else {
                Log.E(TAG, "lastAddedObj", "the generic object list received is empty!!");
                return null;
            }
        } else {
            Log.E(TAG, "lastAddedObj", "the generic object list received is null!!");
            return null;
        }
    }

2 个答案:

答案 0 :(得分:2)

没有直接的方法可以做你想做的事。 Map是一个无序构造。但是,有一些选择:

  • 保留对某处添加的最后一项的引用
  • 创建您自己的密钥类型,其中包含有关何时添加密钥的信息。这将需要在键集上循环以查看在一段时间/值之后添加了哪个键。
  • 由于您使用整数作为键,而不知道其他任何内容,因此可以使用递增的变量来添加项目。然后你回到与第二个子弹点相同的情况。

答案 1 :(得分:1)

也许您可以使用Arraylist获取最后一个值。

之类的,

List<String> list = new ArrayList<>();

然后在添加项目后,您可以获得其大小,

int size = list.size();

然后获取最后一项,

String last_item = list.get(size - 1);