|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
Как преобразовать данный код в Java 8 stream Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
у меня получилось вот так, но это как то совсем не то, да и не работает Код: java 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2018, 13:36 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
Kopranych, у тебя был превосходный код. Его надо было разбить на 2 процедуры которые работают с коллекциями. Это в лучших традициях рефакторинга. А ты из него сделал нечитабельную фигню. Зачем тулить Streams везде где ни попадя? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2018, 13:47 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
mayton, можешь на примере показать рефакторинг моего кода? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2018, 14:05 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
До того как мы начнем. Я спрошу вопрос. Ты суммы денег всегда считаешь в double? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2018, 14:10 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
И еще один вопрос. Читал ли ты книгу Кея Хостмана - Java SE 8 базовый курс? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2018, 14:17 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
Kopranych, нужно взять stocks, опционально отфильтровать их по секторам, а потом сложить: Код: java 1.
после чего затащить суммы в сектора ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2018, 14:31 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
maytonИ еще один вопрос. Читал ли ты книгу Кея Хостмана - Java SE 8 базовый курс? Нет эту книгу не читал, обязательно начну! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2018, 15:04 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
KopranychmaytonИ еще один вопрос. Читал ли ты книгу Кея Хостмана - Java SE 8 базовый курс? Нет эту книгу не читал, обязательно начну! Тогда проще. С любезного разрешения господина Хорстмана я сделаю цитату. Java SE 8 базовый курс - Глава 82. Потоковые операции не изменяют их источник. Например метод filter() не удаляет элементы из нового потока данных но выдает новый поток в котором они отсутствуют. Я прокомментирую. Корни этого пункта уходят в функционально программирование. В частности такие методы как map/fold/reduce изначально не имеют отношения к Java. Их разные вариации были в Scala, Haskell и прочих языках которые очень аккуратно относятся к функциям и к purity. Поэтому такой фрагмент кода Код: java 1.
нарушает правило номер 2. К каким последствиям это приведёт для твоего кода? Скорее всего ни к каким но в целом для парадигмы Streams данное поведения я-бы счел нежелательным. Это такой себе Stream-smell. И на code-review он бы вызвал вопросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2018, 16:05 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
Kopranychmayton, можешь на примере показать рефакторинг моего кода? По поводу рефакторинга. Я готов попробовать "развалить" твой волшебный метод на два метода. Убежден что после этого мы хотя-бы понизим комплексность. Но ты поставил меня в сложное положение. Мне придётся самому создать такие сущности как Sector и Stock. Мне это делать лень поэтому я прошу тебя привести кусок кода с этими зависимостями. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2018, 16:08 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
mayton, вот класс Sector Код: java 1. 2. 3. 4. 5. 6.
класс Stock Код: java 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2018, 16:46 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
Kopranych, Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2018, 17:11 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
Андрей Панфилов, Спасибо за решение! А еще говорят, что функциональное программирование более проще читается, по мне так мой вариант в обычном стиле более проще в понимании ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2018, 17:20 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
KopranychА еще говорят, что функциональное программирование более проще читается, по мне так мой вариант в обычном стиле более проще в понимании Так и есть, просто код приведенный выше далек от функционального программирования ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2018, 21:02 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
авторА еще говорят, что функциональное программирование более да потому что это JAVA-корявые языковые конструкции пиши в SCALA и всё будет красиво. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 01:02 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
забыл никKopranychА еще говорят, что функциональное программирование более проще читается, по мне так мой вариант в обычном стиле более проще в понимании Так и есть, просто код приведенный выше далек от функционального программирования всё больше убеждаюсь что у каждого свой взгляд на понятие функционального программирования )) по мне так это дичь само по себе которая толком пока не выстрелила (и не факт что выстрелит вообще) ну и джава для фп так себе подходит. слишком архаична. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 11:51 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
Cheblin, косность языковых конструкций java там не самая большая проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 12:00 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
andreykaTвсё больше убеждаюсь что у каждого свой взгляд на понятие функционального программирования )) Отнюдь, когда начинаешь в нем разбираться, основные принципы кристаллизуются в мозгу и по ним особых разногласий ни у кого нет andreykaTпо мне так это дичь само по себе которая толком пока не выстрелила (и не факт что выстрелит вообще) ну и джава для фп так себе подходит. слишком архаична. Ну это частая проблема - делать суждения в темах, которых не особо разбираешься. В конкретном коде во время итерирования, объект Sector изменяется, одно это уже мимо ФП, не говоря о том, что зачем-то обновляется еще и сторонний объект(allocationSector.getAllocations().add(sector);) Так что не стоит удивляться говну на выходе. По поводу того что джава не подходит для фп - соглашусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 12:06 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
andreykaTзабыл никпропущено... Так и есть, просто код приведенный выше далек от функционального программирования всё больше убеждаюсь что у каждого свой взгляд на понятие функционального программирования )) по мне так это дичь само по себе которая толком пока не выстрелила (и не факт что выстрелит вообще) ну и джава для фп так себе подходит. слишком архаична. Если сравнить иерархию типов Scala c структурой примитивных типов и базовых классов Java то начнёшь ощущать эдакую лёгкую зависть к scala. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 12:33 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
Я понимаю о чем ты говоришь. и да, я и не претендую на то что уже получил ФП головного мозга. У меня пока скорее ООП ГМ. вот всё стараюсь, но практически применить или развить навыки пока особо негде. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 12:34 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
andreykaTЯ понимаю о чем ты говоришь. и да, я и не претендую на то что уже получил ФП головного мозга. У меня пока скорее ООП ГМ. вот всё стараюсь, но практически применить или развить навыки пока особо негде. Аналогично. У меня тоже нету продуктовых задач где юзается ФП. Поэтому для меня ФП - пока только хобби. Правда был опыт интенсивного юзания XML/XPath и в хвост и в гриву. Но там такое ФП. Весьма специфичное. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 13:24 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
andreykaTЯ понимаю о чем ты говоришь. и да, я и не претендую на то что уже получил ФП головного мозга. У меня пока скорее ООП ГМ. вот всё стараюсь, но практически применить или развить навыки пока особо негде. Самое смешное, что ООП и ФП подходы это просто разные Church Encodings одного и того же, просто взгляд с разных углов. Прочитать можно тут - https://underscore.io/blog/posts/2017/06/02/uniting-church-and-state.html Большинство принципов ФП есть хороший тон и в ООП(иммутабельность, pure functions, referential transaprense и тд), просто ФП позволяет довольно четко отделить мух от котлет, а ООП позволяет вольности ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 13:36 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
Используя C# LINQ данный код можно было записать в один statement. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 15:53 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
cossack5Используя C# LINQ данный код можно было записать в один statement. Давай ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 16:15 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
maytoncossack5Используя C# LINQ данный код можно было записать в один statement. Давай Вроде так (если ничего не упустил): Код: c# 1. 2. 3. 4. 5.
Весь код Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2018, 23:23 |
|
Преобразование вложенных циклов в Java 8 stream
|
|||
---|---|---|---|
#18+
Хм... даже не знаю. По идее мне должен нравится псевдо-SQL-ный вариант. Но код Панфилова кажется более clear с точки зрения ресурсов. Тоесть я понимаю что там примерно под капотом и какие накладные расходы. А этот Линк. Как он делает JOINS ? Он должен вовлекать в работу искусственные структуры данных чтобы JOIN отработал успешно. А если секторов и стоков будет в сто-крат больше? Как он себя поведет? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2018, 23:37 |
|
|
start [/forum/topic.php?fid=59&msg=39706544&tid=2121749]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 364ms |
total: | 528ms |
0 / 0 |