Ребят, вот и вылился минус моего самообразования.
Задача такая:
Есть List:
Обьект 1
Обьект 2
Обьект 3
Обьект 4
Надо сделать метод, который при вызове переставлял каждый раз элемента таким образом.
Вызов 1:
Обьект 4
Обьект 1
Обьект 2
Обьект 3
Вызов 2:
Обьект 3
Обьект 4
Обьект 1
Обьект 2
Вызов 3:
Обьект 2
Обьект 3
Обьект 4
Обьект 1
Вызов 4:
Обьект 1
Обьект 2
Обьект 3
Обьект 4
Голову вот сижу два часа ломаю.
Ребят, вот и вылился минус моего самообразования. Задача такая: Есть List: Обьект 1 Обьект 2 Обьект 3 Обьект 4 Надо сделать метод, который при вызове переставлял каждый раз элемента таким образом. Вызов 1: Обьект 4 Обьект 1 Обьект 2 Обьект 3 Вызов 2: Обьект 3 Обьект 4 Обьект 1 Обьект 2 Вызов 3: Обьект 2 Обьект 3 Обьект 4 Обьект 1 Вызов 4: Обьект 1 Обьект 2 Обьект 3 Обьект 4 Голову вот сижу два часа ломаю.
Уважаемый Alexander Tsitsura подсказал как сделать)
list<String> list1 = new list<string>();
list1.add('Обьект 1');
list1.add('Обьект 2');
list1.add('Обьект 3');
list1.add('Обьект 4');
for(Integer i=0; i<list1.size(); i++) {
list<String> newList = new List<String>();
for (Integer j=0;j<list1.size(); j++)
{
Integer index = Math.mod((i + j), list1.size());
newList.add(list1[index]);
}
System.debug('111111 ' + newList);
}
Уважаемый [b]Alexander Tsitsura[/b] подсказал как сделать) [code] list<String> list1 = new list<string>(); list1.add('Обьект 1'); list1.add('Обьект 2'); list1.add('Обьект 3'); list1.add('Обьект 4'); for(Integer i=0; i<list1.size(); i++) { list<String> newList = new List<String>(); for (Integer j=0;j<list1.size(); j++) { Integer index = Math.mod((i + j), list1.size()); newList.add(list1[index]); } System.debug('111111 ' + newList); } [/code]
Я бы за такое просто увольнял. По статье проф. непригодность.
[quote="DevNull"]Уважаемый [b]Alexander Tsitsura[/b] подсказал как сделать) [/quote] Я бы за такое просто увольнял. По статье проф. непригодность.
Ну как то так
Ну как то так
Ну чего ты так? Такое решение лучше вообще никакого (все же лучшие решения уходят в скайп )
Лучше бы помог человеку разобраться с проблемой прежде чем наезжать.
[quote="wilder"]Я бы за такое просто увольнял. По статье проф. непригодность.[/quote] Ну чего ты так? Такое решение лучше вообще никакого (все же лучшие решения уходят в скайп :D ) Лучше бы помог человеку разобраться с проблемой прежде чем наезжать.
А я скажу почему.
List, set ровно точно так же как и String, Double в салесфорс не просто так называются primitive data types. И если уже человек не умеет работать с примитивными данными, что ему можно доверить разрабатывать ?
[quote="Dmitry Shnyrev"]Такое решение лучше вообще никакого (все же лучшие решения уходят в скайп ) [/quote] А я скажу почему. List, set ровно точно так же как и String, Double в салесфорс не просто так называются primitive data types. И если уже человек не умеет работать с примитивными данными, что ему можно доверить разрабатывать ?
wilder
Вчера я настолько задолбался, что с ошибкой с 4*4 умножил бы. Дедлайн(
А так есть намного более просто решение)
И если я такой галимый программист, то почему меня 3 года держат и платят деньги? Может я выполняю всю нужную работу хорошо?
[b]wilder[/b] Вчера я настолько задолбался, что с ошибкой с 4*4 умножил бы. Дедлайн( А так есть намного более просто решение) И если я такой галимый программист, то почему меня 3 года держат и платят деньги? Может я выполняю всю нужную работу хорошо?
Ну собственно Вы сами ответили на свой вопрос. Нас в школе научили так что даже бы если по среди ночи подняли, то мы бы ответили сколько будет 4*4. Дедлайн не отменяет базовых знаний которые должны быть и они не зависят ни от языка программирования ни от платформы.
А деньги вам платят видимо потому что, Вы успешно можете найти решение проблемы или в интернете или на форуме. Ну и наверное руководство не сильно отличается от Вас в плане знаний.
[quote="DevNull"][b]wilder[/b] Вчера я настолько задолбался, что с ошибкой с 4*4 умножил бы. Дедлайн( А так есть намного более просто решение) И если я такой галимый программист, то почему меня 3 года держат и платят деньги? Может я выполняю всю нужную работу хорошо?[/quote] Ну собственно Вы сами ответили на свой вопрос. Нас в школе научили так что даже бы если по среди ночи подняли, то мы бы ответили сколько будет 4*4. Дедлайн не отменяет базовых знаний которые должны быть и они не зависят ни от языка программирования ни от платформы. А деньги вам платят видимо потому что, Вы успешно можете найти решение проблемы или в интернете или на форуме. Ну и наверное руководство не сильно отличается от Вас в плане знаний.
Угу точно, так и есть. Куда мне аграному, который даже никогда не учился на программиста, и знает только в основном SF до этого дойти. Надо увольняться и опять в колхоз идти. Смысл мне работать. Все ж гуглить умеют и форум читать.
Жаль конечно тему нельзя удалить.
Угу точно, так и есть. Куда мне аграному, который даже никогда не учился на программиста, и знает только в основном SF до этого дойти. Надо увольняться и опять в колхоз идти. Смысл мне работать. Все ж гуглить умеют и форум читать. Жаль конечно тему нельзя удалить.
А это здесь причем ? Ломоносов тоже был из глухой деревни, но это ему не помешало достичь многого. Все дело в желании и мотивации. И к сожалению деньги в IT не самый лучший мотиватор.
[quote="DevNull"]Угу точно, так и есть. Куда мне аграному, который даже никогда не учился на программиста, и знает только в основном SF до этого дойти. Надо увольняться и опять в колхоз идти. Смысл мне работать. Все ж гуглить умеют и форум читать. Жаль конечно тему нельзя удалить.[/quote] А это здесь причем ? Ломоносов тоже был из глухой деревни, но это ему не помешало достичь многого. Все дело в желании и мотивации. И к сожалению деньги в IT не самый лучший мотиватор.
А это здесь причем ? Ломоносов тоже был из глухой деревни, но это ему не помешало достичь многого. Все дело в желании и мотивации. И к сожалению деньги в IT не самый лучший мотиватор.
Я не гений. И я не программист от бога. И у меня нет возможности все свое личное время тратить на изучение чего либо( Даже на подработку нету времени. То что дается вам за пару месяцев, мне надо год.
[quote="wilder"][quote="DevNull"]Угу точно, так и есть. Куда мне аграному, который даже никогда не учился на программиста, и знает только в основном SF до этого дойти. Надо увольняться и опять в колхоз идти. Смысл мне работать. Все ж гуглить умеют и форум читать. Жаль конечно тему нельзя удалить.[/quote] А это здесь причем ? Ломоносов тоже был из глухой деревни, но это ему не помешало достичь многого. Все дело в желании и мотивации. И к сожалению деньги в IT не самый лучший мотиватор.[/quote] Я не гений. И я не программист от бога. И у меня нет возможности все свое личное время тратить на изучение чего либо( Даже на подработку нету времени. То что дается вам за пару месяцев, мне надо год.
Я не гений. И я не программист от бога. И у меня нет возможности все свое личное время тратить на изучение чего либо( Даже на подработку нету времени. То что дается вам за пару месяцев, мне надо год.
Вот в этом то и проблема. Я когда начал изучать салесфорс спал по 5-6 часов. Остальное время работал и читал.
[quote="DevNull"] Я не гений. И я не программист от бога. И у меня нет возможности все свое личное время тратить на изучение чего либо( Даже на подработку нету времени. То что дается вам за пару месяцев, мне надо год.[/quote] Вот в этом то и проблема. Я когда начал изучать салесфорс спал по 5-6 часов. Остальное время работал и читал.
у меня нет такой возможности( Физически. Есть определенные проблемы.
у меня нет такой возможности( Физически. Есть определенные проблемы.
Товарищи. Я думаю это не самый лучший вопрос для обсуждения - кто круче.
У каждого свой жизненный путь развития как программиста.
Может кто-то и пишет здесь простые вопросы и не самые передовые решения, но это не повод друг на друга наезжать или оправдываться.
В автосервисах тоже не все мастера с золотыми руками (честно я вообще уже боюсь ездить в автосервисы).
Товарищи. Я думаю это не самый лучший вопрос для обсуждения - кто круче. У каждого свой жизненный путь развития как программиста. Может кто-то и пишет здесь простые вопросы и не самые передовые решения, но это не повод друг на друга наезжать или оправдываться. В автосервисах тоже не все мастера с золотыми руками (честно я вообще уже боюсь ездить в автосервисы).
Товарищи. Я думаю это не самый лучший вопрос для обсуждения - кто круче.
У каждого свой жизненный путь развития как программиста.
Может кто-то и пишет здесь простые вопросы и не самые передовые решения, но это не повод друг на друга наезжать или оправдываться.
В автосервисах тоже не все мастера с золотыми руками (честно я вообще уже боюсь ездить в автосервисы).
Да тут никто ничего и не доказывает. Я просто считаю, что должна быть определенная база. А сколько времени и сил нужно для ее получания уже каждый решает сам. Главное что бы было желание развиваться.
[quote="Dmitry Shnyrev"]Товарищи. Я думаю это не самый лучший вопрос для обсуждения - кто круче. У каждого свой жизненный путь развития как программиста. Может кто-то и пишет здесь простые вопросы и не самые передовые решения, но это не повод друг на друга наезжать или оправдываться. В автосервисах тоже не все мастера с золотыми руками (честно я вообще уже боюсь ездить в автосервисы).[/quote] Да тут никто ничего и не доказывает. Я просто считаю, что должна быть определенная база. А сколько времени и сил нужно для ее получания уже каждый решает сам. Главное что бы было желание развиваться.
Да тут никто ничего и не доказывает. Я просто считаю, что должна быть определенная база. А сколько времени и сил нужно для ее получания уже каждый решает сам. Главное что бы было желание развиваться.
Вот тут я с тобой согласен полностью!
[quote="wilder"]Да тут никто ничего и не доказывает. Я просто считаю, что должна быть определенная база. А сколько времени и сил нужно для ее получания уже каждый решает сам. Главное что бы было желание развиваться.[/quote] Вот тут я с тобой согласен полностью!
Метод Alexander Tsitsura возвращает это:
|DEBUG|------ (Обьект 1, Обьект 2, Обьект 3, Обьект 4)
|DEBUG|------ (Обьект 2, Обьект 3, Обьект 4, Обьект 1)
|DEBUG|------ (Обьект 3, Обьект 4, Обьект 1, Обьект 2)
|DEBUG|------ (Обьект 4, Обьект 1, Обьект 2, Обьект 3)
Вроде то же, что и хотел автор, но в обратном порядке... Да и задача, вроде бы, в одну строчку вмещается (и так будет в том порядке, что указал автор)...
list<String> list1 = new list<string>();
list1.add('Обьект 1');
list1.add('Обьект 2');
list1.add('Обьект 3');
list1.add('Обьект 4');for (Integer i = 0; i < list1.size(); i++)
{
list1.add(0, list1.remove(list1.size() - 1));
system.debug('-----' + list1);
}
Или я что-то не так понял?
Метод [b]Alexander Tsitsura[/b] возвращает это: |DEBUG|------ (Обьект 1, Обьект 2, Обьект 3, Обьект 4) |DEBUG|------ (Обьект 2, Обьект 3, Обьект 4, Обьект 1) |DEBUG|------ (Обьект 3, Обьект 4, Обьект 1, Обьект 2) |DEBUG|------ (Обьект 4, Обьект 1, Обьект 2, Обьект 3) Вроде то же, что и хотел автор, но в обратном порядке... Да и задача, вроде бы, в одну строчку вмещается (и так будет в том порядке, что указал автор)... [code]list<String> list1 = new list<string>(); list1.add('Обьект 1'); list1.add('Обьект 2'); list1.add('Обьект 3'); list1.add('Обьект 4'); for (Integer i = 0; i < list1.size(); i++) { list1.add(0, list1.remove(list1.size() - 1)); system.debug('-----' + list1); }[/code] Или я что-то не так понял?
Или я что-то не так понял?
Все правильно, wilder это и имел ввиду.
[quote="scFlinT"]Или я что-то не так понял?[/quote] Все правильно, wilder это и имел ввиду.
хорошая тема.
как написано в инструкции, в Апексе Листы - это массивы, а массивы - это Листы.
а "базовых" массивных методов "pop/push, shift/unshift" то нету...
хорошая тема. как написано в инструкции, в Апексе Листы - это массивы, а массивы - это Листы. а "базовых" массивных методов "pop/push, shift/unshift" то нету...
а "базовых" массивных методов "pop/push, shift/unshift" то нету...
А где они есть?
Только в JS видел.
[quote="Den Brown"]а "базовых" массивных методов "pop/push, shift/unshift" то нету...[/quote] А где они есть? Только в JS видел.
Метод Alexander Tsitsura возвращает это:
|DEBUG|------ (Обьект 1, Обьект 2, Обьект 3, Обьект 4)
|DEBUG|------ (Обьект 2, Обьект 3, Обьект 4, Обьект 1)
|DEBUG|------ (Обьект 3, Обьект 4, Обьект 1, Обьект 2)
|DEBUG|------ (Обьект 4, Обьект 1, Обьект 2, Обьект 3)
Вроде то же, что и хотел автор, но в обратном порядке... Да и задача, вроде бы, в одну строчку вмещается (и так будет в том порядке, что указал автор)...
list<String> list1 = new list<string>();
list1.add('Обьект 1');
list1.add('Обьект 2');
list1.add('Обьект 3');
list1.add('Обьект 4');for (Integer i = 0; i < list1.size(); i++)
{
list1.add(0, list1.remove(list1.size() - 1));
system.debug('-----' + list1);
}
Или я что-то не так понял?
А цикл зачем?
[quote="scFlinT"]Метод [b]Alexander Tsitsura[/b] возвращает это: |DEBUG|------ (Обьект 1, Обьект 2, Обьект 3, Обьект 4) |DEBUG|------ (Обьект 2, Обьект 3, Обьект 4, Обьект 1) |DEBUG|------ (Обьект 3, Обьект 4, Обьект 1, Обьект 2) |DEBUG|------ (Обьект 4, Обьект 1, Обьект 2, Обьект 3) Вроде то же, что и хотел автор, но в обратном порядке... Да и задача, вроде бы, в одну строчку вмещается (и так будет в том порядке, что указал автор)... [code]list<String> list1 = new list<string>(); list1.add('Обьект 1'); list1.add('Обьект 2'); list1.add('Обьект 3'); list1.add('Обьект 4'); for (Integer i = 0; i < list1.size(); i++) { list1.add(0, list1.remove(list1.size() - 1)); system.debug('-----' + list1); }[/code] Или я что-то не так понял?[/quote] А цикл зачем?
а "базовых" массивных методов "pop/push, shift/unshift" то нету...
А где они есть?
Только в JS видел.
В перле тоже есть.
[quote="Gres"][quote="Den Brown"]а "базовых" массивных методов "pop/push, shift/unshift" то нету...[/quote] А где они есть? Только в JS видел.[/quote] В перле тоже есть.
А цикл зачем?
Эмм, съэмулировать 4 вызова строчки #9, а что?
Я ж так понял, у автора есть некий гипотетический метод, при вызове которого нужно делать swap элементов в гипотетическом массиве.
[quote="wilder"]А цикл зачем?[/quote] Эмм, съэмулировать 4 вызова строчки #9, а что? Я ж так понял, у автора есть некий гипотетический метод, при вызове которого нужно делать swap элементов в гипотетическом массиве.
А цикл зачем?
Эмм, съэмулировать 4 вызова строчки #9, а что?
Я ж так понял, у автора есть некий гипотетический метод, при вызове которого нужно делать swap элементов в гипотетическом массиве.
Автор не плохо знаком с документацией и знает что есть метод clone
[quote="scFlinT"][quote="wilder"]А цикл зачем?[/quote] Эмм, съэмулировать 4 вызова строчки #9, а что? Я ж так понял, у автора есть некий гипотетический метод, при вызове которого нужно делать swap элементов в гипотетическом массиве.[/quote] Автор не плохо знаком с документацией и знает что есть метод clone
Автор не плохо знаком с документацией и знает что есть метод clone
Что-то я не улавливаю нить - причём тут метод clone?
[quote="wilder"]Автор не плохо знаком с документацией и знает что есть метод clone[/quote] Что-то я не улавливаю нить - причём тут метод clone?
В перле тоже есть.
Я в основном работаю со строго типизированными ООП языками и там не встречал.
[quote="wilder"]В перле тоже есть.[/quote] Я в основном работаю со строго типизированными ООП языками и там не встречал.
list1.add(0, list1.remove(list1.size() - 1))
Тут мой затуп. Задача в одно действие решается list1.add(list1.remove(0))
[quote="scFlinT"]list1.add(0, list1.remove(list1.size() - 1))[/quote] Тут мой затуп. Задача в одно действие решается list1.add(list1.remove(0))
Тут мой затуп. Задача в одно действие решается
Так а я ж о чём
list1.add(list1.remove(0))
В описании задачи русским по белому написано, что нужно взять последний элемент в массиве и положить его перед 1-ым (это если внимательно просмотреть примеры вызовов #1-#4). А ваш код берёт 1-ый элемент и толкает его в конец списка. Это очень важное различие!
З.Ы. вы и есть DevNull, что-ли?
[quote="wilder"]Тут мой затуп. Задача в одно действие решается[/quote] Так а я ж о чём :) [quote="wilder"]list1.add(list1.remove(0))[/quote] В описании задачи русским по белому написано, что нужно взять последний элемент в массиве и положить его перед 1-ым (это если внимательно просмотреть примеры вызовов #1-#4). А ваш код берёт 1-ый элемент и толкает его в конец списка. Это очень важное различие! :) З.Ы. вы и есть DevNull, что-ли?
В описании задачи русским по белому написано, что нужно взять последний элемент в массиве и положить его перед 1-ым (это если внимательно просмотреть примеры вызовов #1-#4). А ваш код берёт 1-ый элемент и толкает его в конец списка. Это очень важное различие!
list1.add(0,list1.remove(list1.size()-1)) - цикл здесь зачем ?
[quote="scFlinT"]В описании задачи русским по белому написано, что нужно взять последний элемент в массиве и положить его перед 1-ым (это если внимательно просмотреть примеры вызовов #1-#4). А ваш код берёт 1-ый элемент и толкает его в конец списка. Это очень важное различие![/quote] list1.add(0,list1.remove(list1.size()-1)) - цикл здесь зачем ?
list1.add(0,list1.remove(list1.size()-1)) - цикл здесь зачем ?
Шутите? Я же выше написал: "съэмулировать 4 вызова строчки #9". Для того, чтобы сделать 4 свопа в тестовом листе. И 4 раза вывести "system.debug". Чтобы бы было наглядно видно, как отрабатывает 9-я строчка. Так понятнее? А так да, цикл там без надобности.
[quote="wilder"]list1.add(0,list1.remove(list1.size()-1)) - цикл здесь зачем ?[/quote] Шутите? Я же выше написал: "съэмулировать 4 вызова строчки #9". Для того, чтобы сделать 4 свопа в тестовом листе. И 4 раза вывести "system.debug". Чтобы бы было наглядно видно, как отрабатывает 9-я строчка. Так понятнее? А так да, цикл там без надобности.