可以不管有多少个key都先加上逗号,最后再删除最后一个逗号。
import java.util.HashMap;
import java.util.Map.Entry;
public class Test {
public static void main(String[] args) {
HashMapState = new HashMap ();
State.put(1, true);
State.put(3, false);
State.put(4, true);
StringBuffer sb = new StringBuffer();
for (Entryentry : State.entrySet()) {
if (entry.getValue())
sb.append(entry.getKey()).append(',');
}
sb.deleteCharAt(sb.length() - 1); // 删除末尾的,
System.out.println(sb); // 输出 1,4
}
}
//第一种
StringBuffer sb=new StringBuffer();
Set keySet = State.keySet();//返回键的集合
for(Object key:keySet){
sb.append(key);
sb.append(",");
}
//第二种
Set keySet = State.keySet();//返回键的集合
Iterator it = keySet.iterator();
while(it.hasNext()) //第一种迭代方式取键值
{
Object key = it.next();
sb.append(key);
sb.append(",");
}
//第三种
Iterator
i=State.entrySet().iterator();
while(i.hasNext()){//只遍历一次,速度快
Map.Entry
e=(Map.Entry)i.next();
sb.append(e.getKey());
sb.append(",");
}
//逗号隔开 :无需判断是不是只有一个值,取出的值再去掉逗号就好了sb.subString(0,sb.length()-1)。
仅供参考,未测试
是要把value值为true的key以逗号分隔拼接成字符串吗,如 map 里 1,true 2,false 3,true 结果为 1,3
sb.append(值)
不是很清楚啥意思