Android team lead at mobileup.ru

Наибольший вклад в теги

Все теги (2)

Лучшие ответы пользователя

Все ответы (4)
  • Пример использования связного списка?

    Artem_zin
    @Artem_zin
    Я в общем-то спорить не хочу, вы скорее всего LinkedList просто «алгоритмически» не взлюбили и троллите его :)

    Да, применений у него мало, конкретно так мало. В основном кто-нибудь всунет куда не надо по незнанию и потом сиди разгребай в чем проблема.

    Но все же, для списка слушателей я использую именно LinkedList т.к. все что я перечислил выше + он ожидаемо ведет себя во всех ситуациях при данном использовании и не создаст мне неожиданных проседаний производительности (маааленьких, но все же), как тот же ArrayList если я просто хочу добавить/удалить слушателя не парясь заранее об их количестве.

    Вам понравится подход к отделению LinkedList в C# от просто списков, там он не реализует IList и случайно применить его не выйдет, только если как коллекцию и то вряд ли, там ArrayList называется List и большинство даже не в курсе про LinkedList.

    В статье снизу список с результатами среднего времени по операциям:
    (наносекунды, меньше лучше)

    ArrayList add:    13265642
    LinkedList add:    9550057
    
    ArrayList get:       1543352
    LinkedList get:     85085551
    
    ArrayList remove:    199961301
    LinkedList remove:    85768810
    


    Вот. Просто такое ощущение, что вы задали вопрос чтобы убедится в правоте своего мнения и других слушать не хотите :)
    Ответ написан
    7 комментариев
  • Самые странные вопросы на собеседовании, которые вам задавали?

    Artem_zin
    @Artem_zin
    На вакансию windows phone разработчика в платежную систему:

    — «Вы крали что-нибудь в банке?»
    — «Привлекались по уголовным делам?»
    и подобное

    Было у психолога с «детектором лжи», в итоге они мне не всю ЗП выплатили, так что это их надо было под «детектором» спрашивать
    Ответ написан
    Комментировать
  • Пример использования связного списка?

    Artem_zin
    @Artem_zin
    Отвечу как разработчик на Java и C#, связные списки применяю очень редко и осторожно, но есть один кейс, в котором лучше него структуры нет — список слушателей какой-нибудь фигни. Почему? Потому что памяти ест мало а используется только для последовательного чтения, удаления с любого места в списке, а связный список самая оптимальная структура данных для этого.

    Пример на Java:

    public class ObservableValue {
    
            public interface Observer {
                void onValueChanged(Object newValue);
            }
    
            private Object value;
            private final List<Observer> observers = new LinkedList<Observer>();
    
            public Object getValue() {
                return value;
            }
    
            public void setValue(Object newValue) {
                this.value = newValue;
                notifyOnValueChanged(newValue); // уведомляем слушателей
            }
    
            // дешевая вставка объекта
            public void addObserver(Observer observer) {
                observers.add(observer);
            }
    
            // дешевое удаление с любого места в списке
            public boolean removeObserver(Observer observer) {
                return observers.remove(observer);
            }
    
            // дешевое чтение т.к. не по индексу, а последовательно
            private void notifyOnValueChanged(Object newValue) {
                for (Observer observer : observers) {
                    if (observer != null) observer.onValueChanged(newValue);
                }
            }
    
        }
    


    Если найдете структуру данных, которая подойдет лучше — скажите мне пожалуйста :)
    Ответ написан
    6 комментариев
  • Возможно ли задать размер TextView в символах?

    Artem_zin
    @Artem_zin

    Да можно, у TextView есть свойство "ems", соответсвтвенно, вы можете указать minEms="12" и maxEms="12" и ширина TextView будет равна 12 символам не зависимо от количества символов в нем

    Ответ написан
    Комментировать