package com.jackie;
import java.util.*;
/**
* Created by zhimeng on 15/11/18.
*/
public class Countries {
public static String[][] DATA = new String[][]{
{"China", "Beijing"}, {"Japan", "Tokyo"},
{"Taiwan", "Taibei"}, {"Zhejian", "Hangzhou"},
{"Hubei", "Wuhan"}, {"Jiangsu", "Nanjing"}
};
public static void main(String[] args) {
System.out.println(Countries.DATA);
}
}
class FlyweightMap extends AbstractMap<String, String> {
public static void main(String[] args) {
System.out.println(Countries.DATA);
}
@Override
public Set<Map.Entry<String, String>> entrySet() {
return entries;
}
private static class Entry implements Map.Entry<String, String> {
int index = -1;
public Entry(int index) {
this.index = index;
}
public String getKey() {
return Countries.DATA[index][0];
}
public String getValue() {
return Countries.DATA[index][1];
}
public String setValue(String value) {
throw new UnsupportedOperationException();
}
@Override
public boolean equals(Object obj) {
return Countries.DATA[index][0].equals(obj);
}
@Override
public int hashCode() {
return Countries.DATA[index][0].hashCode();
}
}
private static class EntrySet extends AbstractSet<Map.Entry<String, String>> {
private int size;
private Entry entry = new Entry(-1);
public EntrySet(int size) {
if (size < 0) {
this.size = 0;
} else if (size > Countries.DATA.length) {
this.size = Countries.DATA.length;
} else {
this.size = size;
}
}
@Override
public Iterator<Map.Entry<String, String>> iterator() {
return new Iter();
}
@Override
public int size() {
return size;
}
private class Iter implements Iterator<Map.Entry<String, String>> {
public boolean hasNext() {
System.out.println("size: " + size); //这里除了错误。因为这个判断条件应该是size-1;
return entry.index < size-1;
}
public Map.Entry<String, String> next() {
entry.index++;
System.out.println("entry index: " + entry.index);
return entry;
}
}
}
private static Set<Map.Entry<String, String>> entries = new EntrySet(Countries.DATA.length);
public static Map<String, String> select(final int size) {
return new FlyweightMap() {
@Override
public Set<Map.Entry<String, String>> entrySet() {
return new EntrySet(size);
}
};
}
public static Map<String, String> map = new FlyweightMap();
public static Map<String, String> capitals() {
return map;
}
public static Map<String, String> capitals(int size) {
return select(size);
}
static List<String> names = new ArrayList<String>(map.keySet());
public static List<String> names() {
return names;
}
public static List<String> names(int size) {
return new ArrayList<String>(select(size).keySet());
}
}
ps: 因为map 在生成keySet() 的时候,会调用entrySet()。 仅供自己bug的记录。
分享到:
相关推荐
推荐一款Java实体映射工具---mapstruct(csdn)————程序
商业源码-编程源码-silverlight Map源码.zip
此java类实现了对数据表的分类递归树的实现,为本人倾力之作,后期,会发布js版,敬请期待!
疯狂java讲义思维导图,理清讲义的思路和结构,方便学习和思考。
计算机软件-编程源码-实例十--电子地图开发之GIS组件--Mapobject深入开发.zip
java,利用keySet进行遍历map
1.vue-baidu-map在线地图代码不用改动,只用按照文档添加baidu-api.js和baidu-init.js,并在vue依赖包 node_modules文件找到,修改vue-baidu-map的 index.js文件 就能完成离线配置 2.jar包可以免费下载百度地图瓦片...
java集合类list-set-map.doc
Map a = new HashMap(); //方法一 Iterator it = a.entrySet().iterator(); while (it.hasNext()) { Map.Entry pairs = (Map.Entry) it.next(); System.out.println(pairs.getValue()); } //以下方法需要jdk5以上...
JSP应用开发-Java集合类-Map接口.pptx
Java concurrentMap 内存模型深入分析 HotCode
GO Map是一个动态地图SDK,用于使用unity 3D制作基于...若要商用,请前往Unity官方资源商店重新购资源以获得合法使用权:https://assetstore.unity.com/packages/tools/integration/go-map-3d-map-for-ar-gaming-68889
echarts针对高德地图所使用的amap方法,用于echarts的地图创建;echarts针对高德地图所使用的amap方法,用于echarts的地图创建
10.java基础拾遗--匿名内部类的应用--实现scala中的集合map方法.mp4
java 集合类的详细介绍 set map list 以及iterator entry 的介绍
百度echart图表插件结合高德地图中所需要的amap文件。echarts针对高德地图所使用的amap方法,用于echarts地图创建,带完整演示文档。
react-native-amap, 针对 iOS + Android响应本机AMap组件 react-native-amap针对 iOS + Android响应本机AMap组件react-native-amap-view是由react-native-maps激发的amap库的包装器,它可以在安卓和iOS中使用##Demo
配置好java环境后,将上面的C:\Program Files\Java\1916-x64-gdal-3-3-0-mapserver-7-6-3\bin 拷贝到C:\Program Files\Java\jdk1.8.0_261\bin全部替换即可使用gdal
java基础-list_map_等等的基本概念,适用于零基础的入门培训。
内容概要:总结了Java集体体系中的三大集合接口LIst、Set、Map,本文对LIst、Set做出了详细、简要的分析,没有冗长的文章,全是干货,下载即用,其中涉及了其底层实现,面试题必备。 学习收获:通过学习这篇文章,您...