1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Как записать в массив?

Тема в разделе "Разработка плагинов для новичков", создана пользователем Bars, 16 окт 2014.

  1. Автор темы
    Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Нубский вопрос :D
    Код:
    public class ArenaCommand implements CommandExecutor {
        Location[] start = new Location[]{null};
        @Override
        public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
            if (command.getName().equalsIgnoreCase("arena") && sender instanceof Player && args.length >= 1) {
                Player p = (Player) sender;
                if (p.hasPermission("miniger.arena.create")) {
                    if (args[0].equalsIgnoreCase("addstart")) {
                        // ArrayIndexOutOfBound Exception:
                        start[start.length] = p.getLocation();
                        p.sendMessage("§2[Miniger] §aТочка спавна §e#"+start.length+"§a добавлена");
                    }
                }
            }
        }
    }
    
     
  2. Dereku

    Dereku Старожил Пользователь

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Код:
    public class ArenaCommand implements CommandExecutor {
        ArrayList<Location> start = new ArrayList<>();
        @Override
        public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
            if (command.getName().equalsIgnoreCase("arena") && sender instanceof Player && args.length >= 1) {
                Player p = (Player) sender;
                if (p.hasPermission("miniger.arena.create")) {
                    if (args[0].equalsIgnoreCase("addstart")) {
                        start.add(p.getLocation());
                        p.sendMessage("§2[Miniger] §aТочка спавна §e#"+start.length+"§a добавлена");
                    }
                }
            }
        }
    }
    
    А лист в массив делаем так:
    Код:
    Location[] locs = start.toArray(new Location[start.size()]);
     
  3. Автор темы
    Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    А никак нельзя с массивами вместо ArrayList?
     
  4. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Массив — кусок данных фиксированного размера, у тебя есть только элементы 0 ... n - 1.
     
  5. Dereku

    Dereku Старожил Пользователь

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Так что нет. Выше я тебе дал один вариант, как можно это сделать.
     
  6. Автор темы
    Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Понял, попробую.
     
  7. Jampire

    Jampire Старожил Пользователь

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    для нормальной выборки из массива нужно будет его перебрать и сравнить каждую запись с нужной тебе.
    в List достаточно использовать get, который работает значительно быстрее описанного выше метода.

    Если интересует сделать лист уникальным, наверное, лучше SetList, в остальных будет достаточно простого List
     

Поделиться этой страницей