hashmap 的keyset方法返回了一个set集合 我想把它返回类型改为 Set keys=Map.keyset()怎么理解?

java\u4e2dhashmao\u96c6\u5408keyset\u65b9\u6cd5\u8fd4\u56de\u4e00\u4e2aset\u96c6\u5408\uff0c\u4f46\u662f\u5177\u4f53\u662f\u54ea\u4e00\u4e2a\u96c6\u5408\u5462?

\u662f KeySet\uff0cHashMap \u7684\u5185\u90e8\u7c7b\u3002
KeySet \u662f Set \u7684\u5b9e\u73b0\u7c7b\uff0c\u53ef\u4ee5\u8fdb\u884c\u81ea\u52a8\u7c7b\u578b\u8f6c\u6362\uff0c\u6240\u4ee5\u53ef\u4ee5\u7528 Set \u53bb\u63a5\u6536\u3002

\u6709\u4e00\u4e2aMap\u5bf9\u8c61\uff0c\u8fd9\u65f6\u5019\u4f7f\u7528keySet()\u65b9\u6cd5\u83b7\u53d6\u6240\u6709\u7684key\u503c\uff0c\u6bd4\u5982\uff1a
Map map = new HashMap();map.put(1, "a");map.put(2, "b");map.put(3, "c");map.put(4, "d");
Set keys1 = map.keySet();Set keys2 = map.keySet();Set keys3 = map.keySet();
\u4e0a\u9762\u4e09\u4e2aset\u5bf9\u8c61key1\uff0ckey2\uff0ckey3\u5f15\u7528\u7684\u662f\u4e00\u4e2a\u5bf9\u8c61\u3002\u8fd9\u65f6map\u7684keySet()\u65b9\u6cd5\u53ea\u8fd4\u56de\u4e00\u4e2aset\u5b9e\u4f8b\uff0c\u6240\u4ee5\u5f53\u4ecekey1\u4e2d\u5220\u9664\u4e00\u4e2a\u5bf9\u8c61\u65f6\u5019\uff0ckey2\u548ckey3\u5c06\u4f1a\u53d7\u5230\u5f71\u54cd\u3002keys1.remove(1);System.out.println(keys1);System.out.println(keys2);System.out.println(keys3);
\u6253\u5370\u7ed3\u679c\u4e3a\uff1a[2, 4, 3][2, 4, 3][2, 4, 3]

\u6269\u5c55\u8d44\u6599
Map\u662fjava\u4e2d\u7684\u4e00\u4e2a\u63a5\u53e3\uff0cMap.Entry\u662fMap\u7684\u4e00\u4e2a\u5185\u90e8\u63a5\u53e3\u3002\u5bf9\u4e8eMap\u4e2d\u63d0\u4f9b\u7684\u4e00\u4e9b\u5e38\u7528\u65b9\u6cd5\uff0c\u5982map.keySet()\u3001map.entrySet()\u3001map.values()\u7b49\u65b9\u6cd5\u5927\u591a\u6570\u4eba\u90fd\u4e0d\u662f\u5f88\u719f\u6089\u3002
map.keySet()\u65b9\u6cd5\u8fd4\u56de\u503c\u662fMap\u4e2dkey\u503c\u7684\u96c6\u5408\uff1bmap.entrySet()\u7684\u8fd4\u56de\u503c\u662f\u4e00\u4e2aSet\u96c6\u5408\uff0c\u6b64\u96c6\u5408\u7684\u7c7b\u578b\u4e3aMap.Entry\u3002Map.Entry\u662fMap\u58f0\u660e\u7684\u4e00\u4e2a\u5185\u90e8\u63a5\u53e3\uff0c\u6b64\u63a5\u53e3\u4e3a\u6cdb\u578b\uff0c\u5b9a\u4e49\u4e3aEntry\u3002\u5b83\u8868\u793a\u7684\u662fMap\u4e2d\u7684\u4e00\u4e2a\u5b9e\u4f53\uff08key-value\uff09\u3002
\u63a5\u53e3\u4e2d\u6709\u6211\u4eec\u5e38\u7528\u7684getKey(),getValue\u65b9\u6cd5\u3002
\u4e3b\u65b9\u6cd5\uff1a
public static void main(String[] args) {
Map map = new HashMap();
map.put(1, "\u96f7\u8fbe1");
map.put(2, "\u96f7\u8fbe2");
map.put(3, "\u96f7\u8fbe3");
map.put(4, "\u96f7\u8fbe4");

iterator(map);
}

很简单啊, map.keySet返回虽然是一个Set, 但不是LinkedHashSet类型的值, 返回的就是一个HashSet类型的值,而LinkedHashSet虽然是HashSet的子类,但是是不能将HashSet转换成LinkedHashSet的。

java编程规范都这么些的啦:
Set<String> result = map.keySet();

扩展阅读:www.sony.com.cn ... hikikomori安卓下载 ... paperpass免费入口 ... hashkey交易所app ... khanacademy login ... khan academy kids ... sigma koki ... musedash最新版免费下载 ... hashkey exchange app ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网