public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("_name", "name"); map.put("_age", "age"); Set<String> set = map.keySet(); Iterator iterator = set.iterator(); // 第一次迭代 StringBuffer str1 = new StringBuffer(); while (iterator.hasNext()) { str1.append(iterator.next() + ","); } String str1To = str1.substring(0, str1.lastIndexOf(",")).toString(); System.out.println(str1To); // 第二次迭代 StringBuffer str2 = new StringBuffer(); while (iterator.hasNext()) { // 断点调式好像不会进入到这里面来 str2.append(iterator.next() + ","); } String str2To = str2.substring(0, str2.lastIndexOf(",")).toString();// 这一行报错 System.out.println(str2To); }
代码如上,两次迭代为什么不行,难道是第一次迭代的时候已经迭代到最后了吗?这样会影响到第二次迭代?