|
|
|
Помогите реализовать логику на Java.2 [Коллекции]
|
|||
|---|---|---|---|
|
#18+
Код: java 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. Три вопроса: Во-первых. Как реализовать, чтобы список(rzs) заполнялся элементами M1,M2,M3,M4,M5 и всех их комбинациями. Потому что, что я написал слишком похоже на дерь... . Во-вторых. Как сравнивать элементы из списков. В-третьих. Как в сравнении находить, что элемент M1 из 1списка(asu), является подстрокой элемента M1M2M3 из 2списка(rzs) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2013, 20:25:34 |
|
||
|
Помогите реализовать логику на Java.2 [Коллекции]
|
|||
|---|---|---|---|
|
#18+
2ое, думаю можно реализовать с помощью унаследованного метода equals, ну а как быть, если нужно чтобы 3ий пункт выполнялся да и вообще, если удалять одинаковые записи не стоит(потому что элементы передвинутся, да и ошибки полезут) может не ArrayList? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2013, 20:41:08 |
|
||
|
Помогите реализовать логику на Java.2 [Коллекции]
|
|||
|---|---|---|---|
|
#18+
eldarkaa, сформулируйте задачу в математическом виде (в терминах множеств), а уж потом подбирайте реализацию. Возможно, окажется, что вместо строк типа "M1M2" лучше использовать битовые шкалы. А то у меня сильное подозрение, что вы выбрали неадекватную реализацию, попали в тупик, и теперь зовете других разделить вашу участь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2013, 22:42:22 |
|
||
|
Помогите реализовать логику на Java.2 [Коллекции]
|
|||
|---|---|---|---|
|
#18+
rfq, Просто я не совсем близко знаком со всеми классами в Java. (3-ий день только изучаю) Реализация возможно не самая лучшая, так как повторяющиеся значения и каждый раз будут сравнивать - совсем не гуд. Но интересует пока реализация на Массиве строк или на Списке на массиве строк. - ... Пока никто не отвечал я вспомнил еще про одну особенность. Что просто так из списка не удалишь. Идет смещение элементов и появится ошибка о целостности данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2013, 22:53:45 |
|
||
|
Помогите реализовать логику на Java.2 [Коллекции]
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Результат Итерация: 0 0 элемент(M1) в ASU равен 0 элементу(M1) в RZS Итерация: 1 Итерация: 2 Итерация: 3 3 элемент(M3) в ASU равен 2 элементу(M3) в RZS Итерация: 4 4 элемент(M4) в ASU равен 3 элементу(M4) в RZS Итерация: 5 5 элемент(M5) в ASU равен 4 элементу(M5) в RZS Итерация: 6 Итерация: 7 Итерация: 8 Итерация: 9 Итерация: 10 Итерация: 11 ( asu[i].matches(rzs[j]) ) как заставить его работать для массива строк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2013, 23:39:42 |
|
||
|
Помогите реализовать логику на Java.2 [Коллекции]
|
|||
|---|---|---|---|
|
#18+
eldarkaa, Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2013, 23:43:31 |
|
||
|
Помогите реализовать логику на Java.2 [Коллекции]
|
|||
|---|---|---|---|
|
#18+
Usman, спасибо за удобный способ соединить. Там еще 2 вопроса. А пока у меня не получается проделать даже с массивом строк Код: java 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. Обязательно всю логику писать в main. Но он static и не позволяет мне использовать нестат. метод внутри него. А если писать не в нем. То результат 0. Если сделать rzs[j].toString() тоже не срабатывает. Как сделать вхождение строки в строку из массива((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 00:26:40 |
|
||
|
Помогите реализовать логику на Java.2 [Коллекции]
|
|||
|---|---|---|---|
|
#18+
eldarkaaОбязательно всю логику писать в main. Но он static и не позволяет мне использовать нестат. метод внутри него. Чувак, ты в статике создай объект класса и из него вызови свой нестат. метод. Код: java 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 00:38:03 |
|
||
|
Помогите реализовать логику на Java.2 [Коллекции]
|
|||
|---|---|---|---|
|
#18+
по-прежнему не знаю как выцепить подстроку из объекта. массив строк for (int i=0; i<asu.length;i++){ System.out.println("Итерация: "+i); for (int j=0; j<rzs.length;j++) { if (asu[i].matches(rzs[j].toString())) { System.out.println(i+" элемент ("+asu[i]+") в ASU равен "+j+" элементу ("+rzs[j]+") в RZS"); asu[i]=""; rzs[j]=""; Исходный кодpackage Homework04082013; import java.util.Arrays; public class work { String[] asu = {"M1","M1","M1","M3","M4","M5","M1","M1","M1","M4","M5","M5"}; String[] rzs = {"M1","M2","M3","M4","M5", "M1M2","M1M3","M1M4","M1M5","M2M3","M2M4","M2M5","M3M4","M3M5","M4M5" ,"M1M2M3","M1M2M4","M1M2M5","M1M3M4","M1M3M4","M1M4M5","M2M4","M2M5"}; public static void main(String[] args) { work bebebe = new work(); bebebe.mywork(); } public void mywork() { System.out.println(Arrays.deepToString(rzs)); System.out.println(Arrays.deepToString(asu)); for (int i=0; i<asu.length;i++){ System.out.println("Итерация: "+i); for (int j=0; j<rzs.length;j++) { if (asu[i].matches(rzs[j].toString())) { System.out.println(i+" элемент ("+asu[i]+") в ASU равен "+j+" элементу ("+rzs[j]+") в RZS"); asu[i]=""; rzs[j]=""; } } } } } вывод:[M1, M2, M3, M4, M5, M1M2, M1M3, M1M4, M1M5, M2M3, M2M4, M2M5, M3M4, M3M5, M4M5, M1M2M3, M1M2M4, M1M2M5, M1M3M4, M1M3M4, M1M4M5, M2M4, M2M5] [M1, M1, M1, M3, M4, M5, M1, M1, M1, M4, M5, M5] Итерация: 0 0 элемент (M1) в ASU равен 0 элементу (M1) в RZS Итерация: 1 Итерация: 2 Итерация: 3 3 элемент (M3) в ASU равен 2 элементу (M3) в RZS Итерация: 4 4 элемент (M4) в ASU равен 3 элементу (M4) в RZS Итерация: 5 5 элемент (M5) в ASU равен 4 элементу (M5) в RZS Итерация: 6 Итерация: 7 Итерация: 8 Итерация: 9 Итерация: 10 Итерация: 11 Список из массива строк for (int i=0;i<asu.size();i++){ for (int j=0;j<rzs.size();j++) { if ((asu.get(i).equals(rzs.get(j))) || asu.get(i).contains(rzs.get(j))) { System.out.println("YAaHO! Element("+asu.get(i)+") ASU = Element("+rzs.get(j)+") RZS"); asu.remove(i); rzs.remove(j); } Исходный кодpackage version1; import java.util.Arrays; import java.util.List; import java.util.ArrayList; /** * Created with IntelliJ IDEA. * User: Eldar * Date: 05.08.13 * Time: 0:44 * To change this template use File | Settings | File Templates. */ public class www { public static void main(String[] args) { List<String> asu = new ArrayList<String>(); for (int j=0;j<10;j++) { for (int i=0;i<2;i++){ asu.add("M1");} asu.add("M2"); asu.add("M3"); asu.add("M4"); asu.add("M5"); } System.out.println("Asu size :"+asu.size()); List<String> rzs = new ArrayList<String>(); for (int j=0;j<5;j++) { for (int i=0;i<2;i++){ rzs.add("M1");} rzs.add("M2"); rzs.add("M3"); rzs.add("M4"); rzs.add("M5"); } for (int j=0;j<3;j++) { for (int i=0;i<2;i++){ rzs.add("M1M2");} rzs.add("M2M3"); rzs.add("M3M4"); rzs.add("M4M5"); } for (int j=0;j<2;j++) { for (int i=0;i<2;i++){ rzs.add("M1M2M3");} rzs.add("M2M3M4"); rzs.add("M3M4M5"); rzs.add("M1M4M5"); rzs.add("M1M2M5"); } System.out.println("Rzs size: "+rzs.size()); for (int i=0;i<asu.size();i++){ for (int j=0;j<rzs.size();j++) { if ((asu.get(i).equals(rzs.get(j))) | asu.get(i).contains(rzs.get(j))) { System.out.println("YAaHO! Element("+asu.get(i)+") ASU = Element("+rzs.get(j)+") RZS"); asu.remove(i); rzs.remove(j); } } } } } вывод: Asu size :60 Rzs size: 57 YAaHO! Element(M1) ASU = Element(M1) RZS YAaHO! Element(M1) ASU = Element(M1) RZS YAaHO! Element(M2) ASU = Element(M2) RZS YAaHO! Element(M3) ASU = Element(M3) RZS YAaHO! Element(M4) ASU = Element(M4) RZS YAaHO! Element(M5) ASU = Element(M5) RZS YAaHO! Element(M1) ASU = Element(M1) RZS YAaHO! Element(M2) ASU = Element(M2) RZS YAaHO! Element(M3) ASU = Element(M3) RZS YAaHO! Element(M4) ASU = Element(M4) RZS YAaHO! Element(M1) ASU = Element(M1) RZS YAaHO! Element(M1) ASU = Element(M1) RZS YAaHO! Element(M2) ASU = Element(M2) RZS YAaHO! Element(M3) ASU = Element(M3) RZS YAaHO! Element(M5) ASU = Element(M5) RZS YAaHO! Element(M1) ASU = Element(M1) RZS YAaHO! Element(M1) ASU = Element(M1) RZS YAaHO! Element(M2) ASU = Element(M2) RZS YAaHO! Element(M4) ASU = Element(M4) RZS YAaHO! Element(M5) ASU = Element(M5) RZS YAaHO! Element(M1) ASU = Element(M1) RZS YAaHO! Element(M1) ASU = Element(M1) RZS YAaHO! Element(M3) ASU = Element(M3) RZS YAaHO! Element(M4) ASU = Element(M4) RZS YAaHO! Element(M5) ASU = Element(M5) RZS YAaHO! Element(M1) ASU = Element(M1) RZS YAaHO! Element(M2) ASU = Element(M2) RZS YAaHO! Element(M4) ASU = Element(M4) RZS YAaHO! Element(M3) ASU = Element(M3) RZS YAaHO! Element(M5) ASU = Element(M5) RZS в одном и другом случае, находит только элементы M1 --> M1, а вхождение M1 --/--> M1M2 не находит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 01:37:08 |
|
||
|
Помогите реализовать логику на Java.2 [Коллекции]
|
|||
|---|---|---|---|
|
#18+
eldarkaa, Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 02:49:56 |
|
||
|
Помогите реализовать логику на Java.2 [Коллекции]
|
|||
|---|---|---|---|
|
#18+
Usman, Спасибо, работает. Надо еще понять как так:) Еще есть вопрос. Почему в IntelliJ Idea 12 (jdk1.7) ваш код не печатает ничего, а в compileonline.com все успешно работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 03:03:08 |
|
||
|
Помогите реализовать логику на Java.2 [Коллекции]
|
|||
|---|---|---|---|
|
#18+
проблема вашего решения, что не удалить потом элементы эти, и они будут повторять, то есть для одного элемента из ASU находить несколько из RZS, это не правильно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 03:11:58 |
|
||
|
Помогите реализовать логику на Java.2 [Коллекции]
|
|||
|---|---|---|---|
|
#18+
eldarkaa, Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 03:53:31 |
|
||
|
Помогите реализовать логику на Java.2 [Коллекции]
|
|||
|---|---|---|---|
|
#18+
Usman, спасибо) но в моих унылых записях было : уныние 1for (int i=0; i<asu.length;i++){ System.out.println("Итерация: "+i); for (int j=0; j<rzs.length;j++) { if (asu[i].matches(rzs[j].toString())) { System.out.println(i+" элемент ("+asu[i]+") в ASU равен "+j+" элементу ("+rzs[j]+") в RZS"); asu[i]=""; rzs[j]="" ; asu[i]=""; rzs[j]="" уныние 2for (int i=0;i<asu.size();i++){ for (int j=0;j<rzs.size();j++) { if ((asu.get(i).equals(rzs.get(j))) || asu.get(i).contains(rzs.get(j))) { System.out.println("YAaHO! Element("+asu.get(i)+") ASU = Element("+rzs.get(j)+") RZS"); asu.remove(i); rzs.remove(j); } asu.remove(i); rzs.remove(j); Но, я не смею больше вас напрягать. И так вы проделали огромную работу. Спасибо большое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 04:05:11 |
|
||
|
Помогите реализовать логику на Java.2 [Коллекции]
|
|||
|---|---|---|---|
|
#18+
Помогите решить задачу.ЗадачаЕсть массив строк(asu) - M1,M2,M3... , а так же массив строк (rzs) - M1,M2,M3 и все возможные их комбинации. Необходимо для каждого элемента ASU(например M1) найти элемент в rzs(M1,M1M2,..), в котором содержится(например M1) Если нашлось совпадение(вхождение), то удалить из обоих массивов элементы! Я пытался это сделать с помощью Массива строк и Списка на массиве строк, но тщетно. Не могу( не знаю как ) реализовать поиск подстроки в объекте(строка). 2 неудачные попытки 14661863 Usman сделал вхождение элемента M1(asu)->M1M2(rzs) 14661888 , а так же удаление из одного массива(rzs) 14661906 . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 10:16:07 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38354619&tid=2128880]: |
0ms |
get settings: |
14ms |
get forum list: |
21ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
55ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
3ms |
| others: | 305ms |
| total: | 503ms |

| 0 / 0 |
