标准的Map访问方法如下: Set keys = map.keySet( );
if(keys != null) {
Iterator iterator = keys.iterator( );
while(iterator.hasNext( )) {
Object key = iterator.next( );
Object value = map.get(key);
}
}
然后,这个方法有一个问题。从Map中取得关键字之后,我们必须每次重复返回到Map中取得相对的值,这是很繁琐和费时的。
Map类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的对象集。接
着,Map.Entry类提供了一个getKey()方法和一个getValue()方法,因此,上面的代码可以被组织得更符合逻辑。举例如下:
Set entries = map.entrySet( );
if(entries != null) {
Iterator iterator = entries.iterator( );
while(iterator.hasNext( )) {
Map.Entry entry =iterator.next( );
Object key = entry.getKey( );
Object value = entry.getValue();
}
}
尽管增加了一行代码,我们却省略了许多对Map不必要的“get”调用。同时,提供给开发人员一个同时保持了关键字和其对应的值的类。Map.Entry同时也提供了一个setValue()方法,程序员可以使用它修改map里面的值。
Hashtable内部排列的方式是散列排布,所以当输出信息时会是无序的。为了能保证输出的数据按照顺序排列,不要渴望用java自带的函数来对Hashtable对象进行调整处理。当我们获取Hashtable里的KEY和VALUE时,一般都运行了Map.Entry类来转换,好,现在就用这个类来作文章,我具体写了一个方法。
代码:
/**
* 方法名称:getSortedHashtable
* 参数:Hashtable h 引入被处理的散列表
* 描述:将引入的hashtable.entrySet进行排序,并返回
*/
public static Map.Entry[] getSortedHashtable(Hashtable h){
Set set = h.entrySet();
Map.Entry[] entries = (Map.Entry[])set.toArray(new Map.Entry[set.size()]);
Arrays.sort(entries,new Comparator(){
public int compare(Object arg0, Object arg1) {
Object key1 = ((Map.Entry)arg0).getKey();
Object key2 = ((Map.Entry)arg1).getKey();
return ((Comparable)key1).compareTo(key2);
}});
return entries;
}
调用这个方法:
Map.Entry[] set = getSortedHashtable(t);
//perportyTable
for (int i=0;i<set.length;i++){
System.out.println(set[i].getKey().toString());
System.out.println(set[i].getValue().toString());
}
分享到:
相关推荐
这是我在编写struts2中遇到的问题,整理出来,包括截图,希望可以帮到大家
java.util.ConcurrentModificationException 解决方法 ... at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793) at java.util.HashMap$KeyIterator.next(HashMap.java:828) 例如以下程序(转
当forEach 的items属性中的表达式的值是java.util.Map时,则var中命名的变量的类型就是 java.util.Map.Entry。这时var=entry的话,用表达式${entry.key}取得键名。 用表达${entry.value}得到每个entry的值。这是...
9. **`java.util.Map.Entry`**:表示Map中的键值对,常用于遍历Map。 10. **`java.util.ArrayList`** 和 **`java.util.LinkedList`**:两种常见的列表实现,`ArrayList`基于数组,访问快速;`LinkedList`基于链表,...
46. `java.util.Map.Entry`:Map.Entry接口表示Map中的键值对。 47. `java.io.FileWriter`:FileWriter用于向文件写入字符数据。 48. `java.io.FileReader`:FileReader用于从文件读取字符数据。 49. `android....
java.util.Map.Entry entry = (java.util.Map.Entry) it.next(); System.out.print(entry.getValue()); } System.out.println(); System.out.println(Calendar.getInstance().getTimeInMillis() - bs); } } ``...
这里主要关注的是如何利用JSTL中的`<c:forEach>`标签来遍历一个`java.util.Map`对象,并获取其中的键值对。 ### JSTL简介 JSTL是一组标准标签库,用于简化JavaServer Pages (JSP) 页面的开发工作。它提供了一系列...
import java.util.Map; public class BeanToMapConverter { public static Map, Object> beanToMap(Object bean) throws Exception { Map, Object> map = new HashMap(); Class<?> clazz = bean.getClass(); ...
在Java编程语言中,`HashMap`是`java.util`包中的一个核心类,它提供了键值对(key-value pairs)的存储功能。本项目实践了一个自定义的HashMap实现,旨在帮助开发者深入理解其内部工作原理。`HashMap`是基于哈希表...
import java.util.Map; public class XmlMapConverter { public static Map, Object> xmlToMap(String xmlStr) throws DocumentException { SAXReader reader = new SAXReader(); Document document = reader....
import java.util.Map.Entry; import java.util.Set; import java.util.TreeMap; public class TestTreeMap { public static void main(String[] args) { TreeMap, ArrayList<City>> map = new TreeMap(); ...
以上只是Java工具类库中的一部分内容,实际上,它还包括许多其他实用的类,如`java.util.ArrayList`、`java.util.Stack`、`java.util.Map.Entry`等。熟练掌握这些工具类的使用,对于Java开发者来说至关重要,它们...
map.remove(entry.getKey()); // 这将抛出 ConcurrentModificationException } } ``` 在这个例子中,当我们试图在遍历过程中删除一个元素时,迭代器会检测到Map的结构已被改变,从而抛出异常。这是因为迭代器在...
import java.util.Map.Entry; import java.util.Set; public class DicisionTree { public static void main(String[] args) throws Exception { System.out.print("我们测试结果:"); String[] attrNames = new...
import java.util.Map.Entry; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import jxl.Workbook; import jxl.format.Alignment; import jxl.format.Colour; import jxl....
for (Map.Entry, List<Score>> entry : scoresMap.entrySet()) { List<Score> lessonScores = entry.getValue(); for (Score score : lessonScores) { if (score.getId() == studentId) { System.out.println("学生...
import java.util.Map; import java.util.TreeMap; public class MapAppTest { public static void main(String[] args) { noOrder(); hasOrder(); likedHashMap(); } public static void noOrder() { ...
import java.util.Map; public class MapExample { public static void main(String[] args) { // 创建一个HashMap对象 Map, Integer> map = new HashMap(); // 向Map中添加元素 map.put("apple", 1); map....
import java.util.Map; import java.util.stream.Collectors; public class WeekGroupingExample { public static void main(String[] args) throws Exception { // 假设你已经有了按日期排序的YourDataType列表 ...