也是业余爱好者,但认为关键词是“只保留第一次出现的那个”,不是考运算速度
登录 | 论坛导航 -> 华新鲜事 -> 创业求职 | 本帖共有 4 楼,分 1 页, 当前显示第 1 页 : 本帖树形列表 : 刷新 : 返回上一页
<<始页  [1]  末页>>
作者:GoogleEarth (等级:4 - 马马虎虎,发帖:882) 发表:2017-12-21 15:47:05  楼主  关注此帖
今天上午去参加面试的java题目, 这个该怎么做? 题目: 需要存储如下信息: +Name+ + country+ John Canada Bob USA Tom USA Alice Canada Alan Canada Peter UK 现在删除数据,让每个country只保留一个人,只保留第一次出现那个 则剩下: +Name+ + country+ John Canada Bob USA Peter UK 请选择一种数据结构,并用java代码实现
也是业余爱好者,但认为关键词是“只保留第一次出现的那个”,不是考运算速度
可以用map of linkedlist/arraylist,map的key是country,linkedlist/arraylist是list of string
宠辱不惊.笑看庭前花开花落. 去留无意,慢随天外云卷云舒.
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版所有回复从这里展开收起列表
作者:GoogleEarth (等级:4 - 马马虎虎,发帖:882) 发表:2017-12-21 16:45:25  2楼
不能用Hashmap一定要用LinkedHashMap因为是有序的 import java.util.LinkedHashMap; import java.util.Map; public class TestGeneral { public static void main(String[] args) { //store orignal User and Country Map hmOriginal = new LinkedHashMap(); hmOriginal.put("John", "Canada"); hmOriginal.put("Bob", "USA"); hmOriginal.put("Tom", "USA"); hmOriginal.put("Alice", "Canada"); hmOriginal.put("Alan", "Canada"); hmOriginal.put("Peter", "UK"); //store Updated data Map hmUpdated = new LinkedHashMap(); for (Map.Entry entry : hmOriginal.entrySet()) { String sName = entry.getKey(); String sCountry = entry.getValue(); if( !hmUpdated.containsValue(sCountry)) { hmUpdated.put(sName, sCountry); } } System.out.println("Original data is :"+hmOriginal ); System.out.println("Updated data is :"+hmUpdated ); } }
这个方案的前提是人名不会重复。。。
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版所有回复从这里展开收起列表
作者:GoogleEarth (等级:4 - 马马虎虎,发帖:882) 发表:2017-12-21 16:46:13  3楼
就是简单的HashMap然后loop一次,loop的时候把国家名字保存在一个临时的HashSet里面。 每到新一行数据都检查已经保存的HashSet里面有没有这个国家,有的话删除这个元素,没有的话加到HashSet里面。HashMap是有remove方法的,所以很容易实现,注意iterator不要乱就行了。
如何保证“只保留第一次出现的那个”呢?
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版所有回复从这里展开收起列表
作者:GoogleEarth (等级:4 - 马马虎虎,发帖:882) 发表:2017-12-22 09:04:11  4楼
楼上都是0分for loop倒过来,简单map就搞定的事情,非要搞个不知道啥鬼LinkedHashMap。果然Java程序员都不考虑性能的,赞的
程序员不考虑各种的情况吗?
比如重名

正确答案请见我最开始的回复
[本文发送自华新iOS App]
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版所有回复从这里展开收起列表
论坛导航 -> 华新鲜事 -> 创业求职 | 返回上一页 | 本主题共有 4 篇文章,分 1 页, 当前显示第 1 页 | 回到顶部
<<始页  [1]  末页>>

请登录后回复:帐号   密码