|
|
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
public iterface Deleter{ public String[ ] (String[ ], String forDelete ); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 08:48 |
|
||
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
XA public iterface Deleter{ public String[ ] (String[ ], String forDelete ); } А чем не устраивает решение "в лоб"? Типа public String[] (String[] sa, String forDelete){ Vector v = new Vector(); for (int i=0;i<sa.length;i++) if (!sa .equals(forDelete)) v.addElement(sa); String[] res = new String[v.size()]; for (int i=0;i<res.length;i++) res = (String)v.elementAt(i); return res; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 12:35 |
|
||
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
ЗашедшийА чем не устраивает решение "в лоб"? Тем что оно медленное. Код: plaintext 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. Тест: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 13:48 |
|
||
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
patch: if (s.equals(toDelete)) -> if (s!=null && s.equals(toDelete)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 13:52 |
|
||
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
Хотя у нас разные решения. Я удаляю первую строку, а ты все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 13:55 |
|
||
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
PS а если надо удалить все элементы, равные заданному? PPS то есть: удаление "as" из {"qw", "as", "zx", "df", "as", "23", "vb"} -> {"qw", "zx", "df", "23", "vb"} -- Lacrima Mosa Est ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 13:57 |
|
||
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
А.Грасоff™PS а если надо удалить все элементы, равные заданному? PPS то есть: удаление "as" из {"qw", "as", "zx", "df", "as", "23", "vb"} -> {"qw", "zx", "df", "23", "vb"} -- Lacrima Mosa Est Код: plaintext 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. 2 раза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 14:17 |
|
||
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
я же пошутил :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 14:32 |
|
||
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
я тоже %) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 14:44 |
|
||
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
Кстати, я сначала что-то вроде функции из Вашего второго сообщения и написал. Потом подумал, что подобных значений может быть несколько во входном массиве и ввел Vector. Что копирование через System.arrayCopy быстрее, чем через Vector - понятно, однако менее наглядно и с точки зрения дальнейшей поддержки другими программистами часто вызывает проблемы. Хотя если это спецкласс, в который вынесены подобные функции для общего использования остальными разработчиками, и меняется в основном только автором, то вариант с промежуточным массивом правильнее, конечно. У нас просто такая специфика, что основные тормоза происходят из-за запросов к большим БД, поэтому остальное требуют писать более удобным в модификации и поддержке, пусть даже в ущерб производительности. P.S. И часто эта привычка мешает :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 15:49 |
|
||
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
Зашедший Придерживаюсь аналогичной позиции. Не стоит оптимизировать то, что не влияет на производительность. Однако разминка для извилин никогда не повредит Ж) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 16:21 |
|
||
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUs Зашедший Придерживаюсь аналогичной позиции. Не стоит оптимизировать то, что не влияет на производительность. Однако разминка для извилин никогда не повредит Ж) Согласен. Спасибо за напоминание :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 16:33 |
|
||
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
Кстати, переписывал некоторые свои старые классы, заодно изменил в данном примерчике Vector на ArrayList (в нем методы не синхронизированы) - работа в полтора раза ускорилась :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 18:44 |
|
||
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
Ещё чуть короче и быстрее: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 09:13 |
|
||
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
mozheyko_dЕщё чуть короче и быстрее: В этом решении есть ошибка. Должен быть декремент i, после удалёния элемента. Но здравное зерно тоже есть. Представляю модифицированный N2 :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Код: plaintext 1. time spend 1: 2500 time spend 2: 1594 time spend 3: 1531 time spend 2(modified): 1484 Призапуске теста с ключём -server: time spend 1: 1890 time spend 2: 1188 time spend 3: 1250 (!) time spend 2(modified): 1094 :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 12:46 |
|
||
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
естественно, я тестировал исправленный вариант N3: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 12:47 |
|
||
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUs mozheyko_dЕщё чуть короче и быстрее: В этом решении есть ошибка. Должен быть декремент i, после удалёния элемента. Но здравное зерно тоже есть. Представляю модифицированный N2 :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Код: plaintext 1. time spend 1: 2500 time spend 2: 1594 time spend 3: 1531 time spend 2(modified): 1484 Призапуске теста с ключём -server: time spend 1: 1890 time spend 2: 1188 time spend 3: 1250 (!) time spend 2(modified): 1094 :)) тебе заняться нечем? напиши фак про java.lang.annotation.* и вообще про @ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 12:47 |
|
||
|
Как быстро удалить строку из String[ ]?
|
|||
|---|---|---|---|
|
#18+
ой, не заметил. prevIndex можно совсем удалить из кода. но на производительность это сущ. не влияет :) Ещё пару раз по запускал с ключём -server, в среднем выходит такой результат: time spend 1: 1891 time spend 2: 1172 time spend 3: 1187 time spend 2(modified): 1078 2кодо: так faq про аннотации есть почти везде. например, на javable.com: http://www.javable.com/docs/articles/annot/ а поганять массивы это забавно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 12:58 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=32889266&tid=2152832]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 533ms |

| 0 / 0 |
