Redian新闻
>
本次中国之行小结 (转载)
avatar
本次中国之行小结 (转载)# Joke - 肚皮舞运动
f*a
1
given Map hashMap 和 Set hashset,当set的key出现在map里面时,删除Map
里面的元素,最后返回map.
public void modifyMap(Map hashmap, Set hashset)
{
}
面试官说3行就可以搞定,那位大侠说说?
avatar
g8
2

Consumer prices rose less than expected in January, while prices excluding
food and energy fell for the first time since 1982, soothing worries
inflation pressures were starting to build up.
avatar
z*3
3
【 以下文字转载自 WaterWorld 讨论区 】
发信人: qwxqwsean (qiu), 信区: WaterWorld
标 题: 本次中国之行小结
发信站: BBS 未名空间站 (Thu Sep 19 09:25:14 2013, 美东)
这次我回中国, 7/24 从雪城出发, 9/21 回到雪城, 行程共约2个月。
开支:机票829美元, 其它费用600美元, 共支出约1400美元。
此次目的是回中国找对象,没有达到目的。 我几年来已经为此多次返回中国, 不能成
功, 中国女人看来很看不上我, 我在考虑是否下次访问缅甸, 老挝, 柬埔寨, 和
越南。
如今收拾行李去上海赶回美国的飞机, 发现多出20包方便面, 不便处理, 这是我的
安排能力的一个笑话。 现在想是否在上海分发给看似可能有需要的民工。 不过我这些
方便面是一元一包的, 生活不艰苦朴素的民工看不上。
avatar
p*2
4
貌似是三行吧。用Clojure估计一样应该能搞定吧。
avatar
p*N
5
exclude food and energy, what a joke
Good news for GOLD though.

【在 g8 的大作中提到】
:
: Consumer prices rose less than expected in January, while prices excluding
: food and energy fell for the first time since 1982, soothing worries
: inflation pressures were starting to build up.

avatar
M*e
6
老邱终于回来了

【在 z*****3 的大作中提到】
: 【 以下文字转载自 WaterWorld 讨论区 】
: 发信人: qwxqwsean (qiu), 信区: WaterWorld
: 标 题: 本次中国之行小结
: 发信站: BBS 未名空间站 (Thu Sep 19 09:25:14 2013, 美东)
: 这次我回中国, 7/24 从雪城出发, 9/21 回到雪城, 行程共约2个月。
: 开支:机票829美元, 其它费用600美元, 共支出约1400美元。
: 此次目的是回中国找对象,没有达到目的。 我几年来已经为此多次返回中国, 不能成
: 功, 中国女人看来很看不上我, 我在考虑是否下次访问缅甸, 老挝, 柬埔寨, 和
: 越南。
: 如今收拾行李去上海赶回美国的飞机, 发现多出20包方便面, 不便处理, 这是我的

avatar
f*a
7
二爷写一下吧。

【在 p*****2 的大作中提到】
: 貌似是三行吧。用Clojure估计一样应该能搞定吧。
avatar
b*t
8
开盘捡便宜货吧。
avatar
p*2
9

好久没写Java了,这个行吗?
modifyMap = (map, set)->
delete map[k] for k in set

【在 f********a 的大作中提到】
: 二爷写一下吧。
avatar
b*f
10
public void modifyMap(Map hashmap, Set hashset)
{
for(K key : hashset)
hashmap.remove(key);
}
如果不对请指正
avatar
f*a
11
对的,谢谢。

【在 b***f 的大作中提到】
: public void modifyMap(Map hashmap, Set hashset)
: {
: for(K key : hashset)
: hashmap.remove(key);
: }
: 如果不对请指正

avatar
d*u
12
题目是要求保留key 出现在 set 里的元素,这个不是删除了这些元素么?
我觉得是正确的是这样:
public void modifyMap(Map hashmap, Set hashset){
for (K key: hashmap.keySet()){
if (!hashset.contains(key)) hashmap.remove(key);
}
}

【在 b***f 的大作中提到】
: public void modifyMap(Map hashmap, Set hashset)
: {
: for(K key : hashset)
: hashmap.remove(key);
: }
: 如果不对请指正

avatar
S*C
13
这种方法会抛出ConcurrentModificationException异常,因为迭代过程中不允许修改
hashmap的state
/**
given Map hashMap 和 Set hashset,当set的key出现在map里面时,保留Map
里面的元素,最后返回map.
*/
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
public class SetAndMap {
public static void main(String args[]){
Map hashmap=new HashMap();
hashmap.put("1","A");
hashmap.put("2","B");
hashmap.put("3","C");
hashmap.put("4","D");
hashmap.put("5","E");
System.out.println("Before modifying map: map ="+hashmap.entrySet());
Set hashset=new HashSet();
hashset.add("1");
hashset.add("3");
hashset.add("5");
new SetAndMap().modifyMap(hashmap, hashset);
System.out.println("After modifying map: map "+hashmap.entrySet());
}
//wrong!
public void modifyMap2(Map hashmap, Set hashset)
{
Set keyset=((ConcurrentHashMap)hashmap).
keySet();
for(Object key: keyset){
if(!hashset.contains(key))
hashmap.remove(key);
}
}
//correct
public void modifyMap(Map hashmap, Set hashset) {
Iterator keyset=hashmap.keySet().iterator();
while(keyset.hasNext()){
if(!hashset.contains(keyset.next()))
keyset.remove();
}
}
}

【在 d******u 的大作中提到】
: 题目是要求保留key 出现在 set 里的元素,这个不是删除了这些元素么?
: 我觉得是正确的是这样:
: public void modifyMap(Map hashmap, Set hashset){
: for (K key: hashmap.keySet()){
: if (!hashset.contains(key)) hashmap.remove(key);
: }
: }

avatar
q*c
14
这个,数了一下,正好三行。哪个公司啊?

Map
for(K key : hashset)
if(!hashmap.contains(key))
hashmap.remove(key);

【在 f********a 的大作中提到】
: given Map hashMap 和 Set hashset,当set的key出现在map里面时,删除Map
: 里面的元素,最后返回map.
: public void modifyMap(Map hashmap, Set hashset)
: {
: }
: 面试官说3行就可以搞定,那位大侠说说?

avatar
j*w
15
public void modifyMap(Map hashmap, Set hashset)
{
Iterator it = hashmap.entrySet().iterator();
while (it.hasNext())
{
Entry entry = (Entry) it.next(
);

if (hashset.contains(entry.getKey()))
continue;
else
hashmap.remove(it);
}
}
avatar
z*e
16
Set tempSet = new HashSet(map.keySet());
tempSet.removeAll(set);
for(K k:tempSet) map.remove(k);
这里有个陷阱,考java里面的reference
第一行很重要,一定要new,否则会出问题
avatar
z*e
17
用ruby的话,这里有一个陷阱
上一个需求我在这里耗了一整天
java好很多,主要是set/map太好用了

【在 p*****2 的大作中提到】
: 貌似是三行吧。用Clojure估计一样应该能搞定吧。
avatar
c*3
18
说3行就3行:
public void modifyMap(Map hashmap, Set hashset) {
Iterator> it = hashmap.entrySet().iterator();
while (it.hasNext())
if (!hashset.contains(it.next().getKey())) it.remove();
}
avatar
d*u
19
re

【在 z****e 的大作中提到】
: 用ruby的话,这里有一个陷阱
: 上一个需求我在这里耗了一整天
: java好很多,主要是set/map太好用了

avatar
D*6
20
什么陷阱??展开讲讲。

【在 z****e 的大作中提到】
: Set tempSet = new HashSet(map.keySet());
: tempSet.removeAll(set);
: for(K k:tempSet) map.remove(k);
: 这里有个陷阱,考java里面的reference
: 第一行很重要,一定要new,否则会出问题

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。