日期:2014-05-20 浏览次数:20717 次
public static void main(String[] args) throws Exception { HashMap map = new HashMap(); map.put("A", "北京"); map.put("B","上海"); Set set = map.keySet();//set不能取所以先转换成能取的 ArrayList list = new ArrayList(set); for(int i=0;i<list.size();i++) { System.out.println("key="+list.get(i)); System.out.println("value="+map.get(list.get(i))); } }
------解决方案--------------------
问的问题怎么让人这么纠结啊
你想问的是容器种类吧?
数组的话每种类型都存在自己的数组类型 数组属于特殊容器 他的容量不能动态增长
其他可以动态增长的容器大类分为Collection和Map Collection存对象 Map存关系
Collection下又分为Set和List:1. Set不允许有重复对象 遍历难 结构修改容易 2.List允许有重复对象 遍历简单 结构修改相对复杂
Map下的key和value都有对应方法获得他们对应的Set视图和Collection视图 方法为keys()和values()
------解决方案--------------------
Map<String,Integer> hh = new HashMap<String,Integer>(); hh.put("zhangsan", 123); hh.put("lis", 312); hh.put("wangwu", 833); for(Map.Entry<String, Integer> entry: hh.entrySet()){ System.out.println(entry.getKey() +" : "+entry.getValue()); }
------解决方案--------------------
实现list接口常用的集合:ArrayList LinkedList Stack Vector(这个也用的比较少了),其中ArrayList和LinkedList用的比较频繁,可以多看看。
实现Map接口常用对象:HashMap TreeMap HashTable(这个也用的比较少了),建议多看看。
------解决方案--------------------
那不叫数组,叫集合 List Set Map List和Set都可以用for each来遍历,如 for (Type t : (List|Set)instance)... , 或者用iterator来遍历 Iterator<Type> it = (List|Set)instance.iterator(); while (it.hasNext()) ... Map也可以用for each来遍历,如 for (Map.Entry<KeyType, ValueType> e : Map-instance) { e.getKey(); e.getValue(); ... } 也可以用Key的集合或Value的集合来遍历,和Set的遍历差不多,如 for (KeyType kt : Map-instance.keySet()) ... for (ValueType vt : Map-instance.values()) ...