Java TreeMap одиночное создание - PullRequest
1 голос
/ 23 ноября 2011

У меня есть это приложение, которое требует создания TreeMap <> (), и эту карту необходимо создать только один раз. У меня есть код для создания карты, и она работает. У меня также есть методы работы, чтобы сохранить и загрузить карту. Мне было интересно, как лучше всего создать карту только один раз за кулисами и сохранить ее перед первым запуском приложения и только один раз? Я не хочу создавать кнопку с надписью «создать карту» и больше никогда не посещать эту страницу. Есть идеи?

Спасибо

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Следующий класс создаст карту во время первого вызова метода get.Вам просто нужно звонить Bla.getMap() каждый раз, когда вам нужна карта, не беспокоясь о ее инициализации.

public class Bla {
    private static TreeMap map = null;
    public static TreeMap getMap() {
        if (map==null) {
            synchronized (Bla.class) {
                map = new TreeMap...
               // rest of initialization code
            }
        }
        return map;
    }
}
1 голос
/ 23 ноября 2011

Вы можете объявить это в статическом поле. Он будет создан только один раз, и если вы вызовете load для него в статическом блоке, он будет вызван только один раз.

, например

public static final MyTreeMapWrapper map = new MyTreeMapWrapper();

class MyTreeMapWrapper {
   final TreeMap treeMap = ...

   MyTreeMapWrapper() {
        // loads data into treeMap
...