[英]How to iterate over a non-empty string?
如果它不為空,我需要遍歷一些String。 我的意思是:
for (String email : partnerEmails.isEmpty() ? new ArrayList<String>()
: partnerEmails.split("\\s*,\\s*")) {
selectedEmails.add(email);
}
我擔心的是,我正在創建一個新的空list
,該list
需要一些資源和內存,並且需要盡快進行垃圾回收。 我該如何避免呢?
僅if ((null != partnerEmails) && !partnerEmails.isEmpty())
時才可以進入循環。 如果要保持循環,可以定義一個private static ArrayList<String> EMPTY_LIST = new ArrayList<String>();
然后遍歷此列表。
在迭代之前驗證空值:
if (!partnerEmails.isEmpty())
for (String email : partnerEmails.split("\\s*,\\s*"))
selectedEmails.add(email);
1) Collections.emptyList()解決了每次創建新對象的問題(而不是您應該擔心這種微優化)。
2)您不需要迭代器。 而是使用以下代碼:
List<String> emails = partnerEmails.isEmpty()
? Collections.emptyList()
: Arrays.asList(partnerEmails.split("\\s*,\\s*"));
selectedEmails.addAll(emails);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.