Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 33 34 35 36 37 38 39 40 [41] 42   вперед  Ctrl
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
asv79
Member

Откуда: Тверь
Сообщений: 1938
chpasha
asv79
далее попробуем в этом коде найти хотя бы один из них,
метод fill входит в стандартную библиотеку java и в ТЗ нет ограничений по использованию каких либо методов или библиотек
формально ты прав, но фактически очевидно, что авторы задачи хотели увидеть решение без явных или замаскированных циклов (а они явно есть и в fill и в toString). по той же причине просили не юзать стримы. что там используется в println не имеет значения, т.к. метод не участвует в генерации чисел, это просто визуализация. Т.е. по сути ты просто подловил автора на неточности формулировки.

какая разница учавствует метод в генерации или визиализирует - у нас задача визиализировать числа от 1 до N
метод prinlnt реализует ифы
тоесть претензтия от озверина к методу fill() явно не обоснована ,либо он слабо представляет себе как устроены сорцы java API
у заказчика прямо озвучены условия - не юзать стримы,условия,исключения ,что не зарпрещено -то разрешено,а все остальное лишь домыслы -тот же озверин юзает код в котором даже не инкапсулировано условие ,что само по себе уже нарушает требование задания,Плюс ко всему его код падает на цифре в около 6500))
20 апр 19, 23:53    [21867975]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
asv79
chpasha
пропущено...
формально ты прав, но фактически очевидно, что авторы задачи хотели увидеть решение без явных или замаскированных циклов (а они явно есть и в fill и в toString). по той же причине просили не юзать стримы. что там используется в println не имеет значения, т.к. метод не участвует в генерации чисел, это просто визуализация. Т.е. по сути ты просто подловил автора на неточности формулировки.

какая разница учавствует метод в генерации или визиализирует - у нас задача визиализировать числа от 1 до N
метод prinlnt реализует ифы
тоесть претензтия от озверина к методу fill() явно не обоснована ,либо он слабо представляет себе как устроены сорцы java API
у заказчика прямо озвучены условия - не юзать стримы,условия,исключения ,что не зарпрещено -то разрешено,а все остальное лишь домыслы -тот же озверин юзает код в котором даже не инкапсулировано условие ,что само по себе уже нарушает требование задания,Плюс ко всему его код падает на цифре в около 6500))


Конечно же моя претензия обоснована ;) Во-первых, потому что ты тЯвкаешь на меня с момента появления на форуме, во-вторых, потому что совершенно очевидно, что сложность условия относится не к выводу как таковому, а в третьих, потому что ты эту задачу, бродячая собака, решить не можешь в силу своих мизерных умственных способностей. А я решил быстро и красиво ;) И нет, в моем решении НЕТ явным условий, научись отличать условия от вычисления выражений, иначе так и будешь не спеша тут решать задачки для 3го класса ;)
21 апр 19, 00:04    [21867982]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Кстати, в целом, было интересной задачей отрефакторить метод так, чтобы не падал по стаковерфлоу.

public class MyClass {
    static int n;
    static int m;
    
    public static void main(String args[]) {
        n = 1;
        m = 4;
        
         print();   
    }
    
    static boolean print() {
        System.out.println(n++);
        boolean b = (n > m || print());
        return true;
    }
}


Кто-то может предложить? ;)
21 апр 19, 00:06    [21867983]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
asv79
Member

Откуда: Тверь
Сообщений: 1938
пс и если уж говорить по существу это очень популярный на собеседовании вопрос,даже я будучи претендентом на обчного стажера готовился что меня про это спросят)
жаль что не спросили)
это не про рекурсию,так как без условия рекурсия в данном случае не отработает

этот вопрос скорее отражает знание java API,тоесть покажет глубину знаний языка
ведь очевидно что озверин и многие другие тупо даже не подозревали что есть такой метод)
а ведь эта задача может также решаться с помощью многопоточности ,в частности семафоров
с помощью двух потоков ,с помощью vector и тд)
21 апр 19, 00:07    [21867984]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
asv79
Member

Откуда: Тверь
Сообщений: 1938
Озверин
Кстати, в целом, было интересной задачей отрефакторить метод так, чтобы не падал по стаковерфлоу.


Кто-то может предложить? ;)

если бы ты был в курсе как jvm пользует память ты бы не задавал таких глупых вопросов
ответ по твоему методу никак-почему - почитай доки
21 апр 19, 00:10    [21867987]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
asv79
пс и если уж говорить по существу это очень популярный на собеседовании вопрос,даже я будучи претендентом на обчного стажера готовился что меня про это спросят)
жаль что не спросили)
это не про рекурсию,так как без условия рекурсия в данном случае не отработает

этот вопрос скорее отражает знание java API,тоесть покажет глубину знаний языка
ведь очевидно что озверин и многие другие тупо даже не подозревали что есть такой метод)
а ведь эта задача может также решаться с помощью многопоточности ,в частности семафоров
с помощью двух потоков ,с помощью vector и тд)


я слабо представляю, как можно одновременно выглядеть и смешно, и глупо..как ты;(
21 апр 19, 00:10    [21867989]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
asv79
Озверин
Кстати, в целом, было интересной задачей отрефакторить метод так, чтобы не падал по стаковерфлоу.


Кто-то может предложить? ;)

если бы ты был в курсе как jvm пользует память ты бы не задавал таких глупых вопросов
ответ по твоему методу никак-почему - почитай доки


ну, во-первых, решение опять же есть и довольно элегантное, во-вторых, конечно же я спрашиваю не тебя, потому что ты совершенно ничего не понимаешь ;(
21 апр 19, 00:11    [21867991]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
asv79
Member

Откуда: Тверь
Сообщений: 1938
Озверин

я слабо представляю, как можно одновременно выглядеть и смешно, и глупо..как ты;(

очень просто -поменять свой никнейм на озверин)
на этом форуме это уже стало синонимом абсолютной тупости)
21 апр 19, 00:13    [21867992]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
asv79
Member

Откуда: Тверь
Сообщений: 1938
Озверин
asv79
пропущено...

если бы ты был в курсе как jvm пользует память ты бы не задавал таких глупых вопросов
ответ по твоему методу никак-почему - почитай доки


ну, во-первых, решение опять же есть и довольно элегантное, во-вторых, конечно же я спрашиваю не тебя, потому что ты совершенно ничего не понимаешь ;(

и это говорит озверин)) ну смешно ей богу-иди анотации тыркай,на большее ты не способен к сожалению)
-
21 апр 19, 00:15    [21867993]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
asv79, знаешь, в чем разница между бродячими собаками вроде тебя и мною? Ты тявкаешь и ничего не можешь предложить в качестве решения, а я спокойно решаю. Потому я - работаю, а ты - тут не можешь решить задачки для джунов ;)
21 апр 19, 00:18    [21867996]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
asv79
Member

Откуда: Тверь
Сообщений: 1938
Озверин
asv79, знаешь, в чем разница между бродячими собаками вроде тебя и мною? Ты тявкаешь и ничего не можешь предложить в качестве решения, а я спокойно решаю. Потому я - работаю, а ты - тут не можешь решить задачки для джунов ;)

да тока я решаю эти задачки лучше тебя,а по поводу тебя -хороший вопрос твоим боссам-накой хрен там держут человека,который не вывовозит java core)
купленый диплом + философия джава на толчке =озверин -шаблон успешного программиста РФ)
21 апр 19, 00:47    [21868004]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
asv79
Озверин
asv79, знаешь, в чем разница между бродячими собаками вроде тебя и мною? Ты тявкаешь и ничего не можешь предложить в качестве решения, а я спокойно решаю. Потому я - работаю, а ты - тут не можешь решить задачки для джунов ;)

да тока я решаю эти задачки лучше тебя,а по поводу тебя -хороший вопрос твоим боссам-накой хрен там держут человека,который не вывовозит java core)
купленый диплом + философия джава на толчке =озверин -шаблон успешного программиста РФ)



разницу я тебе уже пояснил: у тебя решения нет, но ты тявкаешь и безработный, у меня решение есть со всеми вытекающими ;)
21 апр 19, 00:53    [21868006]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
mayton
Member

Откуда: loopback
Сообщений: 41829
asv79
mayton
Но к сожалению ВООБЩЕ без проверки
условий не обойтись



И здесь - демонстрация рекурсии - это 99% решенная задача. Остальное - от лукавого.

давайте по пунктам
1.Вы утверждаете,что этот вопрос демонстрация знаний рекурсии
2.Вы утверждаете,что без проверки условий тут не обойтись

По обоим пунктам вы вкорне не правы,по первому пункту - никто у опытного джависта не будет спрашивать про рекурсию,это вопрос стажеру ,который я решаю за 1 минуту и это не демонстрация рекурсии,так как эта задача решается совсем другим методом

Вы неправы и по второму пункту,эта задача решается без единого условия проверки
Вы неправы и по утверждению "остальное от лукавого",так как эта задача решается при наличии фундтаментальных знаний OOП и именно это хотят увидеть от испытуемого
import java.util.Arrays;

public class Main {


    public static void main(String[] args) {
        int n=1000;
        Object[] numbers = new Object[n];
        Arrays.fill(numbers, new Object() {
            private int count = 0;

            @Override
            public String toString() {
                return Integer.toString(++count);
            }
        });
        System.out.println(Arrays.toString(numbers));

    }
}

Это же обман. Стандартный метод Arrays.fill содержит в себе встроенный цикл for.
Я уже не говорю что метод Arrays.toString который содержит офигенски сложную
подкапотную логику с ветвлениями.

Выше вы говорили что нельзя использовать стандартную библиотеку java.util.stream.
А вы используете библиотеку коллекциий. Коллекции исторически возникли раньше стримов в JDK.
21 апр 19, 01:19    [21868013]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
lleming
Member

Откуда:
Сообщений: 1622
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class Hello {
    static String function =
            "(function(start, end){" +
                    "for(var i = start; i < end; i++){" +
                    "print(i);}})($start, $end)";

    public static void main(String[] args) throws ScriptException {
        int start = 0;
        int end = Integer.MAX_VALUE;

        println(start, end);
        System.out.println("Hello");
    }

    private static void println(int start, int end) throws ScriptException {
        ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
        String expression = function.replaceFirst("\\$start", Integer.toString(start));
        expression = expression.replaceFirst("\\$end", Integer.toString(end));
        engine.eval(expression);
    }
}


Как тебе такое Маск asv79. Все формальности соблюдены. Нет циклов, нет условий даже косвенно в вызываемых методах. Славно работает даже после мулиарда. Формально даже лучше чем твое решение, нет даже эмуляции условий, есть признаки познаний в API (ScriptEngine на уровне).
Но увы читерство.

asv79
Вы неправы и по второму пункту,эта задача решается без единого условия проверки

не решается, все примеры просто эмуляция выражения "if". По сути после того как вызвали метод есть два способа, либо остановить снаружи, либо сообщить условия ему когда остановиться.
21 апр 19, 01:39    [21868028]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
lleming, что за эмуляция? Условие и сравнение - разные вещи же.
21 апр 19, 01:50    [21868032]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
mayton
Member

Откуда: loopback
Сообщений: 41829
Был в форуме один чувак. Он делал ультра-короткий язык программирования.
В частности решал на нём задачу разворота шахматной доски на 45 (!) градусов.
Зачем - никто толком не знает но автор гордился краткостью формы записи.
Мы шутили что любая задача на ультра-коротком языке решается одним словом.
Типа:
makeMeFeel()

Вот и попробуйте поспорить после этого что язык не ультра-корокий. Так-же как
и генерация чисел от 1 до N.

Кстати вот решение этой задачи на Хаскель.
GHCi, version 8.0.2: http://www.haskell.org/ghc/  :? for help
Prelude> [1..10]
[1,2,3,4,5,6,7,8,9,10]
21 апр 19, 01:52    [21868033]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Я пока думал над тем, как избежать переполнения стека придумал пару костылей:

Не очень красивый костыль с переходом от рекурсии к рекурсии + потоки.
Thread.sleep(1) - чтобы предыдущий поток успевал умирать.

public class MyClass {
    static int n = 1;
    static int m = Integer.MAX_VALUE;
    
    public static void main(String args[]) {
       r();
    }
    
    public static boolean r() {
        Thread thread = new Thread(new MyRunnable());
        thread.start();
        return true;
    }
    
    public static class MyRunnable implements Runnable {
        public void run()  {
           try {
               Thread.sleep(1);           
              System.out.println(n++);
               boolean b = (n > m || r());
              
           } catch (InterruptedException e) {
               //
           }
             return;   
           
        }
    }
}



И есть совсем дикий костыль:

public class MyClass {
    static int n = 1;
    static int m = Integer.MAX_VALUE;
 
    public static void main(String[] args) {
        print();
    }
 
    static boolean print() {
        System.out.println(n++);
        try {
            boolean b = (n > m || print());
        } finally {
            boolean b = (n > m || print());
        }
        return true;
    }
 
}


p.s. Я это всю ересь в онлайн компиляторе проверяю, так что ко мне никаких претензий...но в теории, оба способа должны отработать.
21 апр 19, 01:58    [21868035]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
mayton
Member

Откуда: loopback
Сообщений: 41829
Еслибы это была Скала то можно было поддержать хвостовую. Как здесь 21836717
21 апр 19, 02:17    [21868039]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
mayton
Member

Откуда: loopback
Сообщений: 41829
lleming
Как тебе такое Маск asv79. Все формальности соблюдены. Нет циклов, нет условий даже косвенно в вызываемых методах. Славно работает даже после мулиарда. Формально даже лучше чем твое решение, нет даже эмуляции условий, есть признаки познаний в API (ScriptEngine на уровне).
Но увы читерство.

asv79
Вы неправы и по второму пункту,эта задача решается без единого условия проверки

не решается, все примеры просто эмуляция выражения "if". По сути после того как вызвали метод есть два способа, либо остановить снаружи, либо сообщить условия ему когда остановиться.

Я-бы не рассматривал такие идеи. Они даже не оригинальны. Они идут по пути усложнения стека технологий.
Что еще можно втащить в Java чтобы удовлетворить стрёмные требования по отсутсвию формальных операторов
цикла и ветвлений?
21 апр 19, 02:21    [21868040]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
mayton
Еслибы это была Скала то можно было поддержать хвостовую. Как здесь 21836717


я кстати был уверен, что в jdk 9+ добавили tco optimization, потому оно и мой код должно было в цикл разложить..ан нет.
21 апр 19, 08:28    [21868057]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
andreykaT
Member

Откуда:
Сообщений: 2363
Оно имхо только хвостовую рекурсию раскладывает. А у тебя там какие то вычисления по ходу. Вообще запутал всё. Вот ретурн метод()+1 это точно не хвостовая.э и она внне разложится
21 апр 19, 09:48    [21868068]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
asv79
Member

Откуда: Тверь
Сообщений: 1938
mayton
asv79
пропущено...

давайте по пунктам
1.Вы утверждаете,что этот вопрос демонстрация знаний рекурсии
2.Вы утверждаете,что без проверки условий тут не обойтись

По обоим пунктам вы вкорне не правы,по первому пункту - никто у опытного джависта не будет спрашивать про рекурсию,это вопрос стажеру ,который я решаю за 1 минуту и это не демонстрация рекурсии,так как эта задача решается совсем другим методом

Вы неправы и по второму пункту,эта задача решается без единого условия проверки
Вы неправы и по утверждению "остальное от лукавого",так как эта задача решается при наличии фундтаментальных знаний OOП и именно это хотят увидеть от испытуемого
import java.util.Arrays;

public class Main {


    public static void main(String[] args) {
        int n=1000;
        Object[] numbers = new Object[n];
        Arrays.fill(numbers, new Object() {
            private int count = 0;

            @Override
            public String toString() {
                return Integer.toString(++count);
            }
        });
        System.out.println(Arrays.toString(numbers));

    }
}

Это же обман. Стандартный метод Arrays.fill содержит в себе встроенный цикл for.
Я уже не говорю что метод Arrays.toString который содержит офигенски сложную
подкапотную логику с ветвлениями.

Выше вы говорили что нельзя использовать стандартную библиотеку java.util.stream.
А вы используете библиотеку коллекциий. Коллекции исторически возникли раньше стримов в JDK.

Метод println тоже содержит конструкцию из if ,что запрещено условием.
21 апр 19, 11:11    [21868102]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
mayton
Member

Откуда: loopback
Сообщений: 41829
asv79
mayton
пропущено...

Это же обман. Стандартный метод Arrays.fill содержит в себе встроенный цикл for.
Я уже не говорю что метод Arrays.toString который содержит офигенски сложную
подкапотную логику с ветвлениями.

Выше вы говорили что нельзя использовать стандартную библиотеку java.util.stream.
А вы используете библиотеку коллекциий. Коллекции исторически возникли раньше стримов в JDK.

Метод println тоже содержит конструкцию из if ,что запрещено условием.

Тоесть в этом диалектическом противостоянии вы сами признали что задача нерешаема.
21 апр 19, 11:42    [21868117]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
ivanra
Member

Откуда:
Сообщений: 852
Kriptman
Нужно вывести числа от 1 до N. При этом:
-Нельзя использовать циклы
-Нельзя использовать условия
-Нельзя использовать исключения
-Нельзя использовать стримы

Читайте внимательно. Где тут про сравнения?
Условия (condition) - используются в выражениях if (condition) then... (https://www.w3schools.com/java/java_conditions.asp)
Операторы сравнения к условиям не относятся. И даже запрет if легко обходится заменой его на switch. Был бы в java goto, можно было бы и цикл без переполнения стека организовать. А так - asm в помощь
21 апр 19, 12:25    [21868131]     Ответить | Цитировать Сообщить модератору
 Re: Задачка для собеседования : ArrayList vs LinkedList  [new]
asv79
Member

Откуда: Тверь
Сообщений: 1938
mayton
asv79
пропущено...

Метод println тоже содержит конструкцию из if ,что запрещено условием.

Тоесть в этом диалектическом противостоянии вы сами признали что задача нерешаема.

Если доходить до маразма то на java эта задача нерешаема,так как по умолчанию импортируется пакет java.lang в котором от обилия циклов и условий у озверина волосы дыбом встанут)
В условии четко поставлена задача ,мой код ей отвечает.явно нигде ни циклы не сравнения не использованы,а что там под капотом-про это никаких ограничений на это в условии поставлено не было)

Ну а если в тз этого нет,то зачем выдумавать огород-вам четко сказали что от вас хотят увидеть.
21 апр 19, 12:26    [21868133]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 33 34 35 36 37 38 39 40 [41] 42   вперед  Ctrl
Все форумы / Java Ответить