要求:取出Map中的键值,转存为array,以求对该array进行排序。

boyard 2005-01-27 01:55:22
如下的写法好像有问题,请各位指教!

public String CodeGenarate(Map m){
String[] para = (String[])m.keySet().toArray();
List Lt = new LinkedList();
Arrays.sort(para); //对para[]进行排序
Lt = Arrays.asList(para);
ListIterator li = Lt.listIterator();
while(li.hasNext()) //求字符串明文
{
originalText += (String)m.get(li.next());
}
.........
}
...全文
412 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
boyard 2005-01-28
  • 打赏
  • 举报
回复
急啊,正赶着完成一个任务。
HEHE,麻烦大家了。
tim90 2005-01-28
  • 打赏
  • 举报
回复
转型失败
放入容器里面后所有的对象都失去了类型而只是最顶级的OBJECT类型
要再次转型才可
fog628 2005-01-28
  • 打赏
  • 举报
回复
当然可以,另外楼主为什么宁愿跑来问也不自己动手试一下???
boyard 2005-01-28
  • 打赏
  • 举报
回复
多谢,楼上诸位!
还有一问:
在java中,多维数组是否可以做为函数的传值参数,如
public String CodeGenarate(String[][] para){
。。。。。。。。
}
fog628 2005-01-27
  • 打赏
  • 举报
回复
另外你可以不用Arrays.sort();
你可以用Collections.sort(List list);
fog628 2005-01-27
  • 打赏
  • 举报
回复
这样转:String[] para = (String[])m.keySet().toArray(new String[0]);
tian_co 2005-01-27
  • 打赏
  • 举报
回复
知道了,用System.arraycopy
Object[] o = {"dfd","dwd"};
String s[] = new String[o.length];
System.arraycopy(o,0,s,0,o.length);
tian_co 2005-01-27
  • 打赏
  • 举报
回复
String []str=new String[0];
String[] para = (String[])m.keySet().toArray(str);

好像不行吧,就像这样:
Object[] o = {"dfd","dwd"};
String s[] = new String[0];
s = (String[])o;
是错误的
jFresH_MaN 2005-01-27
  • 打赏
  • 举报
回复
String []str=new String[0];
String[] para = (String[])m.keySet().toArray(str);
tian_co 2005-01-27
  • 打赏
  • 举报
回复
Arrays.sort(Object[]);也对^-^
只是不知道有什么好办法可以把Object[]转换成String[]?
tian_co 2005-01-27
  • 打赏
  • 举报
回复
public static void CodeGenarate(Map m){
Object o[] = m.keySet().toArray();
int j = o.length;
String para[] = new String[j];
for(int i=0;i<j;i++) {
para[i] = o[i].toString();
}
List Lt = new LinkedList();
Arrays.sort(para); //对para[]进行排序
Lt = Arrays.asList(para);
ListIterator li = Lt.listIterator();
System.out.println(li.hasNext());
while(li.hasNext()) //求字符串明文
{
System.out.println(m.get(li.next()));
}
}
我改了一下,主要是因为(String[])Object[]这种类型转换不允许造成的,用了个for来赋值,不知道有没有什么更优雅的方式来实现
huang_yb 2005-01-27
  • 打赏
  • 举报
回复
用Object[]就可以了。
dyhml 2005-01-27
  • 打赏
  • 举报
回复
(String[])m.keySet().toArray();
这里有问题吧?它返回的是Object[],即使里面全是String,也不能转为String[].

就用Object[]吧:
Object[] para = m.keySet().toArray();

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧