Map.Entry求助,谢谢谢谢........

tingyingg 2012-09-19 03:32:54
import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.AbstractSet;
public class Entry_1 implements Map.Entry<Integer,String>{
static int index;
public Entry_1(int i){ index=i;}
public Integer getKey(){return index;}
public String getValue(){return "加油!";}
public boolean equals(Object o){
System.out.println("Must invok here?");
throw new UnsupportedOperationException();
}
public String setValue(String s){
throw new UnsupportedOperationException();
}
//返回内部类EntrySets

public static EntrySets getf(int i) {
return new EntrySets(i);
}
//定义内部类EntrySets

static class EntrySets extends AbstractSet<Map.Entry<Integer, String>>{
int size;
public EntrySets(int i){
size=i;
}
public int size() {
return 0;
}
int count=0;//为什么这里改成小于等于0的数时有输出,把count改成大于0时输出都是空的啊?
//内部类迭代器方法
public Iterator<Map.Entry<Integer, String>> iterator() {
return new Iterator<Map.Entry<Integer, String>>(){

public boolean hasNext(){
return count<=size;
}
public Map.Entry<Integer, String> next(){
////////////////////////System.out.println(size);
count++;
return new Entry_1(count);
}
public void remove(){

}
};
}


}//////////////////////////////////////EntrySets

@SuppressWarnings("serial")
static Map<Integer,String> f(int in){
return new HashMap<Integer,String>(){
public Set<Map.Entry<Integer,String>> entrySet(){
return getf(index);
}
};

}
public static void main(String[]args){
for(int i:new Integer[]{5,10,2,3,4,5,6,7,8,}){
System.out.println(f(i));
}
}
}
/////想不通啊。
...全文
171 9 打赏 收藏 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tingyingg 2012-09-19
  • 打赏
  • 举报
回复
恩恩,谢谢,真的参数弄错了,麻烦了
江湖啊江湖 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
;//为什么这里改成小于等于0的数时有输出,把count改成大于0时输出都是空的啊?
中间那里,

代码为什么发不出格式的,第一次发帖,不好意思啊,
[/Quote]

你把count改成大于0,hashNext将返回false所以不在对Map进行迭代,当然不会有属性值输出。
如果你把count改成大于0,也把index改成相应的数,就可以了。

另外,发帖的时候,文章内容右侧的工具栏里,有个图片上有"#"符号,你点击,选择语言,然后把代码嵌里就可以发代码出来了。
xueyetuxi 2012-09-19
  • 打赏
  • 举报
回复
下面代码中的参数in没传给getf方法,是故意这么写的么, 根据这个debug一下吧;

@SuppressWarnings("serial")
static Map<Integer,String> f(int in){
return new HashMap<Integer,String>(){
public Set<Map.Entry<Integer,String>> entrySet(){
return getf(index);
}
};
tingyingg 2012-09-19
  • 打赏
  • 举报
回复
有人在吗,教我发出格式的代码吧,这个列子我本来就对Map.Entry不太懂,它到底是Collection类型,还是依旧是Map形式?是个集合类还是就是包含一个元素的类呢?
  • 打赏
  • 举报
回复
好难,不会
tingyingg 2012-09-19
  • 打赏
  • 举报
回复
;//为什么这里改成小于等于0的数时有输出,把count改成大于0时输出都是空的啊?
中间那里,

代码为什么发不出格式的,第一次发帖,不好意思啊,
菖蒲老先生 2012-09-19
  • 打赏
  • 举报
回复
你的问题呢。。。
tingyingg 2012-09-19
  • 打赏
  • 举报
回复
第一次发帖,为什么显示不出红看点的格式啊,

import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.AbstractSet;
public class Entry_1 implements Map.Entry<Integer,String>{
static int index;
public Entry_1(int i){ index=i;}
public Integer getKey(){return index;}
public String getValue(){return "加油!";}
public boolean equals(Object o){
System.out.println("Must invok here?");
throw new UnsupportedOperationException();
}
public String setValue(String s){
throw new UnsupportedOperationException();
}
//返回内部类EntrySets

public static EntrySets getf(int i) {
return new EntrySets(i);
}
//定义内部类EntrySets

static class EntrySets extends AbstractSet<Map.Entry<Integer, String>>{
int size;
public EntrySets(int i){
size=i;
}
public int size() {
return 0;
}
int count=0;
//内部类迭代器方法
public Iterator<Map.Entry<Integer, String>> iterator() {
return new Iterator<Map.Entry<Integer, String>>(){

public boolean hasNext(){
return count<=size;
}
public Map.Entry<Integer, String> next(){
////////////////////////System.out.println(size);
count++;
return new Entry_1(count);
}
public void remove(){

}
};
}


}//////////////////////////////////////EntrySets

@SuppressWarnings("serial")
static Map<Integer,String> f(int in){
return new HashMap<Integer,String>(){
public Set<Map.Entry<Integer,String>> entrySet(){
return getf(index);
}
};

}
public static void main(String[]args){
for(int i:new Integer[]{5,10,2,3,4,5,6,7,8,}){
System.out.println(f(i));
}
}
}
tingyingg 2012-09-19
  • 打赏
  • 举报
回复
import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.AbstractSet;
public class Entry_1 implements Map.Entry<Integer,String>{
static int index;
public Entry_1(int i){ index=i;}
public Integer getKey(){return index;}
public String getValue(){return "加油!";}
public boolean equals(Object o){
System.out.println("Must invok here?");
throw new UnsupportedOperationException();
}
public String setValue(String s){
throw new UnsupportedOperationException();
}
//返回内部类EntrySets

public static EntrySets getf(int i) {
return new EntrySets(i);
}
//定义内部类EntrySets

static class EntrySets extends AbstractSet<Map.Entry<Integer, String>>{
int size;
public EntrySets(int i){
size=i;
}
public int size() {
return 0;
}
int count=0;
//内部类迭代器方法
public Iterator<Map.Entry<Integer, String>> iterator() {
return new Iterator<Map.Entry<Integer, String>>(){

public boolean hasNext(){
return count<=size;
}
public Map.Entry<Integer, String> next(){
////////////////////////System.out.println(size);
count++;
return new Entry_1(count);
}
public void remove(){

}
};
}


}//////////////////////////////////////EntrySets

@SuppressWarnings("serial")
static Map<Integer,String> f(int in){
return new HashMap<Integer,String>(){
public Set<Map.Entry<Integer,String>> entrySet(){
return getf(index);
}
};

}
public static void main(String[]args){
for(int i:new Integer[]{5,10,2,3,4,5,6,7,8,}){
System.out.println(f(i));
}
}
}

62,620

社区成员

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

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