Коллекция / структура данных, которая предотвращает удаление и позволяет вставлять и только для чтения функциональность - PullRequest
0 голосов
/ 01 ноября 2019

Мне нужна ваша помощь для создания структуры данных / коллекции , которая поддерживает функции чтения и вставки и предотвращает удаление / удаление записей. Один из способов, о котором я мог бы подумать, это создать настроенную коллекцию (, например, myHashMap ) и переопределить все методы удаления / удаления и, таким образом, предотвратить удаление / удаление записей? Но этот подход не будет работать, если у объекта есть метод удаления как Final. Пожалуйста, предложите любой лучший способ .. !!!!

Ответы [ 2 ]

0 голосов
/ 01 ноября 2019

Вы можете создать свою обертку Map и предоставить только те методы, которые вам нужны:

class MyHashMap<K, V>  {

    Map<K, V> map;

    public MyHashMap(Map<K, V> map) {
        this.map = map;
    }


    public V put(K key, V value) {
        return map.put(key, value);
    }

    public V get(K key) {
        return map.get(key);
    }

    // other methods you want
}

пример:

MyHashMap<String, String> myMap = new MyHashMap<>(new HashMap<>());
0 голосов
/ 01 ноября 2019

Вы можете создать свой собственный список массивов, переопределив методы, такие как remove (), с неподдерживаемым исключением операции. Если вы хотите, вы также можете объявить arraylist следующим образом.

ArrayList<String> myList = new ArrayList<String>() {

    @Override
    public boolean remove(String str) {
      //If you want, you can throw Unsupported operation exception also.
      return false;
    }
  };

Могут быть и другие хорошие подходы, вы также можете проверить ответы других.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...