HashTable类可用做容器,其示意图如下。即给容器中每个对象指定一个不重复的key,以便从中取出需要的对象。Key Value
Str1 Val1
Str2 Val2
Str3 Val3
…… ……
Strn valn现需要将容器中的对象按key进行排序,拟重新封装该类。在如下的新的类中使用HashTable容器,但是key被限制为字符串类型,相应地进行了put和get方法的重定义,并增加了sort方法进行排序。
请完成下面代码中的sort方法。由于对容器中的数据量没有特别的限制,因此请使用效率较高的排序方法。另:排序方法为升序。public class HashStringTable {
.HashTable mTable;
.
.public Object put( String key, Object value ) {
return mTable.put( key, value );
} public Object get( String key ) {
return mTable.get( key );
}public void sort( ) {
……
return;
}
}
Str1 Val1
Str2 Val2
Str3 Val3
…… ……
Strn valn现需要将容器中的对象按key进行排序,拟重新封装该类。在如下的新的类中使用HashTable容器,但是key被限制为字符串类型,相应地进行了put和get方法的重定义,并增加了sort方法进行排序。
请完成下面代码中的sort方法。由于对容器中的数据量没有特别的限制,因此请使用效率较高的排序方法。另:排序方法为升序。public class HashStringTable {
.HashTable mTable;
.
.public Object put( String key, Object value ) {
return mTable.put( key, value );
} public Object get( String key ) {
return mTable.get( key );
}public void sort( ) {
……
return;
}
}
解决方案 »
- [求助]用java实现简单工厂模式下的计算器程序时出现的问题,求大侠指教!
- 有没有这种样子的远程debug
- swing 页面跳转 下一步怎么显示新页面
- Java.net.Encoder encode 方法被deprecated了,请问新的方法是哪个呢
- 如何讲一个字符串中的某个值来替换呢?
- JAVA程序的界面重要吗?
- 请教Swing的问题
- osworkflow采用什么开源协议,如果我们用有什么限制吗?
- 提一个很怪的问题,我的Jcreator运行的时候写了一会儿程序修改的时候就自动覆盖原来的代码
- 十六进制接收乱码问题
- 纪念抗日战争中死去的最可爱的人们(无名氏,有名的)以及无辜的中国老百姓,提前纪念
- 递归调用时随机数异常,是不是bug?
key就自动排序的。。
现在排序算法很多那么只要先把Hashtable里面的所有数据拿出来放在数组里面,然后用排序算法来排序
之后再put进Hashtable
排序好了后再对应的去取关键字对应的值吗
然后在把他们put进Hashtable
那这样的话是不是要建立两个相应的数组存放他们阿
有没有一个好点的思路。
或者说,排序后的对象存在哪个容器里?
还是Hashtable么?
* 创建日期 2005-4-20
*/
package com.zcjl.test.base;import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;/**
* @author cong_zhang
*/
public class SortedStringMap { private HashMap map = new HashMap();
private Set keySet = map.keySet(); public Object get(String key) {
return map.get(key);
} public void put(String key, Object value) {
map.put(key, value);
} public void sort() {
List list = new ArrayList(map.keySet()); Collections.sort(list, new Comparator() {
public int compare(Object a, Object b) {
return a.toString().toLowerCase().compareTo(b.toString()
.toLowerCase());
}
}); this.keySet = new TreeSet(list);
} public Set keySet() {
return this.keySet;
} public static void main(String[] args) {
SortedStringMap map = new SortedStringMap();
map.put("123", "123");
map.put("234", "234");
map.put("345", "345");
map.put("456", "456");
map.put("567", "567");
for (Iterator it = map.keySet().iterator(); it.hasNext();) {
String key = (String) it.next();
System.out.println("key[" + key + "], value[" + map.get(key) + "]");
}
System.out.println("\n");
map.sort();
for (Iterator it = map.keySet().iterator(); it.hasNext();) {
String key = (String) it.next();
System.out.println("key[" + key + "], value[" + map.get(key) + "]");
}
}
}