Отражение. Испустите - доступ topmost-one объект от стека

Я немного изменил ваш метод add () и метод toString ():

public void add(E value) {
    if (first == null) {
        first = new Node(value, null, null);
    } else {
        Node current = first;
        while (current.next != null) {
            current = current.next;
        }
        current.next = new Node(value, null, current);
    }
    size++;
}
public String toString()
{
    if (first == null)
    {
        return "[]";
    }
    else
    {
        String result = "[" + first.data;
        Node current = first.next;
        while (current != null)
        {
            result += ", " +current.data ;
            current = current.next;
        }
        result += "]";
        return result;
    }
}

И вот главное для проверки:

public static void main(String[] args) {
    DoublyLinkedList<Integer> list = new DoublyLinkedList<>();
    list.add(1);
    list.add(2);
    list.add(3);
    System.out.println(list.toString()); // [1, 2, 3]
}
9
задан Marc Gravell 4 April 2009 в 23:07
поделиться

4 ответа

Я так не думаю. В IL нет никаких инструкций как подкачка, которая позволила бы Вам делать то, что Вы хотите. Почему Вы рассматриваете использование локального как нежелательное? Если JIT-компилятор будет достаточно хорош, то это не приведет ни к какому более медленному машинному коду, чем использование гипотетической операции подкачки в IL.

7
ответ дан 4 December 2019 в 21:12
поделиться

+1 для ответа kvbs, см.: http://www.codeproject.com/KB/msil/msilenhancement.aspx

1
ответ дан 4 December 2019 в 21:12
поделиться

Встроенный с тем, какой сказанный kvb, Вы могли попробовать небольшую функцию, чтобы сделать некоторое переупорядочение. Не уверенный, если это было бы немного быстрее.

1
ответ дан 4 December 2019 в 21:12
поделиться

Я столкнулся с той же проблемой. Я хотел создать довольно большой метод и часто хотел «поменять местами», чтобы сохранить вычисленное значение. Я был недоволен большим количеством местных жителей, появляющихся в ildasm, и заметил, что BeginScope / EndScope не помогли. В итоге я создал локальный «своп» для контекста моего метода и повторно использовал его для каждой операции обмена. Это делает сгенерированный IL чище; не уверен, оказывает ли это какое-либо существенное влияние на производительность.

1
ответ дан 4 December 2019 в 21:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: