标准的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中遇到的问题,整理出来,包括截图,希望可以帮到大家
当forEach 的items属性中的表达式的值是java.util.Map时,则var中命名的变量的类型就是 java.util.Map.Entry。这时var=entry的话,用表达式${entry.key}取得键名。 用表达${entry.value}得到每个entry的值。这是...
java.util.ConcurrentModificationException 解决方法 ... at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793) at java.util.HashMap$KeyIterator.next(HashMap.java:828) 例如以下程序(转
} sb.append(String.format("%s=%s", URLEncoder.encode(entry.getKey().toString(), "UTF-8"), URLEncoder.encode(entry.getValue().toString(), "UTF-8") )); } return sb.toString(); } public static void main...
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(); ...
import java.util.Map; import java.util.Map.Entry; import java.util.Set; /** * 购物车类 */ public class Cart { //创建一个map对象,用来保存商品,key为商品,value为商品的数量 private Map, Integer> ...
import java.util.Map; import java.util.Map.Entry; import java.util.Set; /** * 购物车类 */ public class Cart { //创建一个map对象,用来保存商品,key为商品,value为商品的数量 private Map, Integer> ...
手机游戏源码,可运行,比较好 ... import java.io.IOException; import java.util.HashMap; import java.util.Map;... MediaPlayer mp = entry.getValue(); if (mp != null) { mp.release(); } } } }
显示此帮助屏幕-jar <file> 罐子要加工-out <file> 输出文件(默认值:output.json) 例子: -out output.json java.util.List java.util.Map java.util.Map$Entry -jar example.jar -out output.json -jar example...
import java.util.Map.Entry; import javax.imageio.ImageIO; import javax.imageio.ImageReader; import javax.imageio.stream.ImageInputStream; import javax.servlet.http.HttpServletRequest; import ...
SFBU 序列文件备份实用程序 - 用于迁移媒体库而不会...import java.util.Map.Entry ;import com.boleslaw.client.FileToHttpConsumer ;import com.boleslaw.client.Poster ;...@org . junit . Testpublic void test1(){
jdk1.7 到 jdk1.8 Map 发生了什么变化(底层)? 1.8 之后 hashMap 的数据结构发生了变化,从之前的单纯的数组+链表结构变成...解决方案是 jdk 的 ConcurrentHashMap,位于 java.util.concurrent 下,专门 解决并发问题。
导入java.util.Map.Entry; 公共课程问题1 { public void stringToCollection() {LinkedHashMap<String> hm = new LinkedHashMap();String s = "FName=Isaac|LName=Newton|Address=UK|Age=20|School=Trinity|...
代码如下:import java.io.BufferedReader;import java.io.InputStreamReader;import java.net....import java.util.Map.Entry; import org.apache.http.HttpResponse;import org.apache.http.HttpVersion;import
执行完以上代码后,result列表中的每个Map都是java.util.LinkedHashMap实例,每个Map的都由下面的这三个Entry组成: key=price, value=book.getPrice() key=name, value=book.getName() key=...
import java.util.Map; public class DebugServer extends NanoHTTPD { public DebugServer() { super(8080); } public static void main(String[] args) { ServerRunner.run...
import java.util.*; /** * 说明:参数封装Map * @version */ public class PageData extends HashMap implements Map{ private static final long serialVersionUID = 1L; Map map = null; ...
Java(低级)系统挂钩为Java提供了非常轻量级的... 使用GlobalKeyboardHook类,可以注册GlobalKeyListener或适配器类GlobalKeyAdapter来监听keyPressed和keyReleased事件,如下所示: import java.util.Map.Entry ;imp
006 import java.util.Map; 007 import java.util.Set; 008 009 import android.annotation.SuppressLint; 010 import android.content.Context; 011 import android.graphics.Canvas; 012 import...
import java.util.Scanner; class Bissextile{ public static void main(String[] arge){ System.out.print("请输入年份"); int year; //定义输入的年份名字为“year” Scanner scanner = new Scanner(System.in...