在线等,一个小问题,可我不会

rocking2807 2008-03-21 04:32:33
public void setKeys(List<SvgPathData> keys) {



int index=0;
while(keys.iterator().hasNext()){
index++;

String id=(String) keys.iterator().next().getPathID();

Keys.add(index,id);

}






}
我从外面传进一个<SvgPathData>的List,我想把它变为ArrayList的Keys,怎么办,我这样是有错误的.
...全文
186 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenkangwan 2008-04-06
  • 打赏
  • 举报
回复
楼主的态度真恶劣,,,,,以后别想有人帮你了。。。。。。。这个是我最后一次在你这里留言。。。
rocking2807 2008-03-24
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 insiku 的回复:]
除了10楼
都tmd一群sb

Java codepublicIterator<E>iterator() {returnnewItr();
}
[/Quote]
楼上强烈抗议你说出这么有道理的话.
我咋没有这气势呢
谢谢大家热心还是
前两天问了一个RC2文件的问题,以为有高人能指点一下,结果一个个牛哄哄,说些不着边的话,三四个红星了不知道怎么混出来的,楞说不可改变,不用改变什么的,那只能说明没遇见这种方法,却非常夜郎自大,
最后还是在MSDN是找到答案,连代码都有.
ming206 2008-03-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 gongyali2005 的回复:]
调用NEXT()方法里.必须先调用HASNEXT()方法
[/Quote]

我想,这位朋友已经给你很明确的思路了,你的keys和Keys(一个大写一个小写,你最好注意JAVA的编码规范!),那么你的Keys又是在那里创建的呢?我们什么没看到?如果需要返回List对象,那么:

public List setKeys(List <SvgPathData> keys) {

ArrayList arrayList;
//加一个List, 注意不能用List <SvgPathData> keys,因为你已经将它转化为SvgPathData类型了.
List KeyList=new List ();

int index=0;
while(keys.iterator().hasNext()){
index++;
//没次进入循环都创建,很烦恼哦........呵呵
arrayList=new ArrayList();
String id=(String) keys.iterator().next().getPathID();
arrayList.add(index,id);
KeyList.add(arrayList);
//似乎感觉没意义,如果是我,我可能不会这样做.
//键和值,太难获取了,怎么会给键取1,2,3,4..........
}
return KeyList;
}
rocking2807 2008-03-24
  • 打赏
  • 举报
回复
这个问题虽小,问了很多人都没看出来,呵呵.纸上来的终觉浅啊
rocking2807 2008-03-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 java2000_net 的回复:]
你的方法有问题,你传进来的是带泛型的keys, 所以所有的操作必须为SvgPathData
如果你想换,那就
public void setKeys(List <SvgPathData> keys) {
==〉
Java codepublicvoidsetKeys(List keys) {//这里不要使用泛型intindex=0;
Iterator it=keys.iterator();while(it.hasNext()) {
index++;
String id=(String) ((SvgPathData)(it.next())).getPathID();
keys.add(index, id);
}
}
[/Quote]
最重要的是这一句Iterator it=keys.iterator()要提出来就好了,谢谢.否则就会环死
ming206 2008-03-24
  • 打赏
  • 举报
回复
你TM的什么态度?自己都表达不清楚怪别人.你自己看你那命名什么什么几吧的规则?真TM的垃圾一个!我是管理员早封你号!
你自己看我们好心给你意见和解答(因为我们根本就没调试过,直接打出来的,难免出错),即使帮不了你.你用得着骂我们吗?
人人都有难的时候,你这难算什么?谁能保证一找就找对人帮解决的?被骂的朋友.我们站起来!鄙视这类人杂!!!!!!!!!!
nihuajie05 2008-03-21
  • 打赏
  • 举报
回复
SvgPathData是什么额~~~~~~~
chenkangwan 2008-03-21
  • 打赏
  • 举报
回复
补充;这个返回一个ArrayList值,所以,你使用它的时候,可以这样:ArrayList alist=setKeys(keys);
参数keys是你传的,返回了你需要的结果!
chenkangwan 2008-03-21
  • 打赏
  • 举报
回复
public void setKeys(List <SvgPathData> keys) {

int index=0;
while(keys.iterator().hasNext()){
index++;

String id=(String) keys.iterator().next().getPathID();

Keys.add(index,id); //你这里有问题!!!很奇怪。

}
按你的意思,我给以下代码你参考:
public ArrayList setKeys(List <SvgPathData> keys) {

ArrayList arrayList=new ArrayList();

int index=0;
while(keys.iterator().hasNext()){
index++;

String id=(String) keys.iterator().next().getPathID();

arrayList.add(index,id);

}
return arrayList;
}
gongyali2005 2008-03-21
  • 打赏
  • 举报
回复
调用NEXT()方法里.必须先调用HASNEXT()方法
老紫竹 2008-03-21
  • 打赏
  • 举报
回复
你的方法有问题,你传进来的是带泛型的keys, 所以所有的操作必须为SvgPathData
如果你想换,那就
public void setKeys(List <SvgPathData> keys) {
==〉
public void setKeys(List keys) {  // 这里不要使用泛型
int index = 0;
Iterator it = keys.iterator();
while (it.hasNext()) {
index++;
String id = (String) ((SvgPathData)(it.next())).getPathID();
keys.add(index, id);
}
}
rocking2807 2008-03-21
  • 打赏
  • 举报
回复
public void setKeys(List<SvgPathData> keys) {



int index=0;
while(keys.iterator().hasNext()){


String id=(String) keys.iterator().next().getPathID();

Keys.add(index,id);
index++;
}






}


"main" java.lang.OutOfMemoryError: Java heap space
at java.util.ArrayList.ensureCapacity(Unknown Source)
at java.util.ArrayList.add(Unknown Source)
rocking2807 2008-03-21
  • 打赏
  • 举报
回复
我命名不太好,Keys.是我要的,keys这个是外面传进来的
DiligencyMan 2008-03-21
  • 打赏
  • 举报
回复
试下<ArrayList>强制转换吧!
霜之哀伤 2008-03-21
  • 打赏
  • 举报
回复
不知道你这是想干什么,从List里面取东西,又添加到自己里面。

62,623

社区成员

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

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