如何在java中的linkhashmap中自动生成密钥

时间:2018-04-05 11:11:04

标签: java netbeans linkedhashmap

我使用netbean

在java中创建这样的linkedhashmap

LinkedHashMap map = new LinkedHashMap();

 map.put(0, "one");
 map.put(1, "two");
 map.put(2, "three");

在上面的代码中键(0,1,2),我希望它自动生成。 我尝试了不同的在线解决方案,但没有工作。

3 个答案:

答案 0 :(得分:0)

您可以使用map.size()

map.put(map.size(), "one"); // map.size() returns 0
map.put(map.size(), "two"); // map.size() returns 1
map.put(map.size(), "three"); // map.size() returns 2
...

答案 1 :(得分:0)

public class Main {
    public static void main(String[] args) {
        Map<Integer, String> map = new LinkedHashMap<>();
        map.put(KeyGenerator.getNextKey(), "One");
        map.put(KeyGenerator.getNextKey(), "Two");
        map.put(KeyGenerator.getNextKey(), "Three");
        map.forEach((key, value) -> System.out.println("Key = " + key + ", value = " + value));
    }

    static class KeyGenerator {
        private static AtomicInteger key = new AtomicInteger(0);
        public static int getNextKey() {
            return key.getAndAdd(1);
        }
    }
}

答案 2 :(得分:0)

public class Test {

    static int i = 0;

    public static void main(String[] args) {

        Map<Integer, String> map = new LinkedHashMap<>();
        map.put(getNext(), "One");
        map.put(getNext(), "Two");
        map.put(getNext(), "Three");
        map.forEach((key, value) -> System.out.println("Key = " + key + ", value = " + value));
    }

    static int getNext() {
        i = i+1;
        return i;
    }
}