0
A
답변
2
음, 옆 루프 내부에 새로운 객체를 생성하는 약간의 코드 냄새에서, 나는 당신이 각 항목에 대한 긴 문자열을 생성하는 for 루프 내부의 StringBuilder를 만들어 볼 수 for-loop.
그러나 for 루프 외부에서 범위를 지정하고 각 패스에서 지울 수도 있습니다. 읽는 것이 더 쉬울 것이라고 생각하는 방식에 달려 있습니다.
0
다른 외부 StringBuilder와 함께 사용하는 경우.
StringBuilder sbAll = new StringBuilder();
for (int i=0; i<cnt; i++) {
....
{
StringBuilder sb = new StringBuilder();
sb.append(",");
sbAll.append(sb.toString());
}
}
문제는 별도의 StringBuilder를 필요로 할 정도로 귀엽다 루프 내부에서 무엇을하고 있습니까? 나는 그것이 가능하다고 생각한다.
0
내부 루프 다음에 오는 코드가 많은 양의 메모리가 필요한 작업을 수행하고 내부 루프 내부의 StringBuilder도 큰 경우 로컬 범위로 설정하여 GC에 대해 알 수 있도록 할 수 있습니다. 나중에 메모리를 비우십시오. 그렇지 않으면 나는 JBistow가 루프 밖에서 범위를 지정하고 내부 루프의 시작 부분에서 trimToSize() d)를 지워야한다고 동의합니다.
관련 문제
- 1. datetime 범위 vb.net for 루프
- 2. std :: getline이 for 루프 내에서 작동하지 않습니다.
- 3. C++ 2d 벡터 "for"루프 내에서 발행
- 4. for 루프 내에서 개체를 필터링하여 목록에 넣기
- 5. while 루프 내에서 중첩 된 for 루프 - Java
- 6. for 루프 내에서 클로저 - 루프 변수를 매개 변수로 사용하는 콜백
- 7. jQuery - for for 루프
- 8. 셀 내에서 사용자 지정 함수에 범위 전달
- 9. apache ab for for 루프
- 10. Stringbuilder 대 SQL FOR XML/XSL 변환
- 11. for 루프 및 setTimeout의 범위 및 타이밍 문제.
- 12. 홀수 for 루프/범위 문제에 대한 설명이 필요합니다.
- 13. for-loop 변수 범위 혼동
- 14. 루프 내에서 콜렉션 변경
- 15. 매우 이상한 for for 루프 초기화
- 16. jQuery .append() for 루프 내에서 호출되었습니다. (폐쇄 문제?)
- 17. Matlab의 for 루프 내에서 어떻게 합계 값을 구합니까?
- 18. For 루프가 돌아 오지 않는 루프 내에서 Google지도 호출
- 19. For 루프 내부 for 루프 - ListArrays - Android, Java!
- 20. For 루프의 범위 설정
- 21. PHP for 루프 문제
- 22. for 루프 용 쉼표
- 23. for 루프 결합
- 24. for-each 루프 변수
- 25. Javascript For 루프 콜백?
- 26. 특정 For 루프 이해
- 27. 이중 For 루프 R
- 28. PHP mysql for 루프
- 29. 많은 스레드의 루프 For
- 30. FireFox의 루프 문제 For
"코드 내부에서 새로운 객체를 만드는 데 약간의 냄새가납니다"- 어떻게 "코드 냄새"가 날 수 있습니까? 모든 Linq-to-objects 쿼리는 항상 객체를 생성하는 루프 (또는 여러 개의 루프)가 필수적입니다. –
루프 내부에서 수행중인 작업을보고 싶을뿐입니다. 이 경우 아무런 문제가 없습니다. 나중에 GCed되는 문제를 일으키는 부작용이있는 객체를 만들 수있는 기회가 있습니다. 앞에서 말했듯이, 이것은 약간의 문제 일 뿐이지 만, 비 가치 객체를 만들 때 고려해야 할 사항입니다. –