1、您还未登录!|登录|注册|帮助 CSDN首页 资讯 论坛 博客 下载 搜索 更多CSDN-CSDN社区-Java- Java SE 管理菜单 o 生成帖子 o 置顶 o 取消置顶o 推荐 o 取消推荐 o 锁定 o 解锁 o 移动 o 编辑 o 删除 o 帖子加分 o 帖子高亮 o 取消高亮 结 帖 发 帖 回 复 收藏 关于移除一个 int数组中重复项的问题, 在线急等问题点数:20分,结帖人:java2000_net楼主发表于:2007-05-31 12:46:26我的想法: 定义一个数组:ba.Length 遍历数组 a,对每一个 ai,判断是否在 b中 if ai在 b中,继续 els
2、e 把 ai加到 b中, 我的问题是 如果 ai在 b中, 应该怎样继续检查下一个? 如果是 string可以令 ai=null, 但是是 int,应该怎样用 java语言表达呢? vivienlf 等 级: 结帖率:100.00% 对我有用0 丢个板砖0 引用 举报 管理 TOP 回复次数:31 #1楼 得分:1 回复于:2007-05-31 12:55:09如果是 int你可以用 Integer 这种类型也可以让它等于 null. thinker28754 对我有用0 等 级: 丢个板砖0 引用 举报 管理 TOP 精华推荐: 【生日祝福】祝我们的【awusoft】版主 生日快乐!#2楼
3、得分:0 回复于:2007-05-31 12:58:52可以说详细一点吗, 我不明白 vivienlf 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP 精华推荐: 面试题去掉一个已经排好序的数组的重复数字,速度尽量快#3楼 得分:1 回复于:2007-05-31 13:01:00关建字 continue lwy8802 (Victim) 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP 精华推荐: 大家 J2EE这条路是怎么走过来的?有什么经验教训?#4楼 得分:0 回复于:2007-05-31 13:12:02好象还是不对. 我的 method: public stat
4、ic int removeDuplicate(int p) int temp = new intp.length; int t = 0; for (int i = 0; i list = new ArrayList (); int is = new int1,2,3,3; for(int i = 0; i is.length; i+) if(!list.contains(new Integer(isi) list.add(new Integer(isi); Integer iis = (Integer) list.toArray(); aunty_flybird ((好好学习,天天向上)Cli
5、f) 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP #11楼 得分:0 回复于:2007-05-31 15:10:13汗.我也不想啊, 这是题目的要求.要是再设一个 array呢? 但是想不出这个新的 array的长度应该怎么根据 temp来设 vivienlf 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP #12楼 得分:0 回复于:2007-05-31 15:13:17“create the result array with appropriate size using temp array, and return the result array “ viv
6、ienlf 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP #13楼 得分:0 回复于:2007-05-31 15:42:12那如果我在 break前加一句 temp.length = temp.length - 1能不能解决呢? = 数组的空间分配后是不能修改的 ArrayList的方法我已经给出了,我想没有题目会规定用这种方法吧,只要返回的是正确的 int,因为在没完成比较前,你并不知道去掉重复项后的数组有多少项,所以用 List 存,然后返回时才转成 int, 你不能在不知道数组的长度前又要用定长的数组 dyw31415926 (守护:struts2.0QQ群) 等 级: 对
7、我有用0 丢个板砖0 引用 举报 管理 TOP #14楼 得分:1 回复于:2007-05-31 17:06:28你的数组越界了,(j1;j p.length-1; j+)你看看这样行不行! q_yanfei 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP #15楼 得分:1 回复于:2007-05-31 17:15:37建个 hashmap 把所有数 put进去,在 get出来,就没重复的了 aoyihuashao (傲衣华少) 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP #16楼 得分:0 回复于:2007-05-31 18:12:06“我想没有题目会规定用这种
8、方法吧 “ 确实没有题目是用这种方法只有我们的 BT教授 不知道anyways , thanks for all your help vivienlf 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP #17楼 得分:1 回复于:2007-06-01 09:48:40HasSet 去重复 lv810 (说比做的简单) 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP maquan (ma:kju) 等 级: #18楼 得分:1 回复于:2007-06-01 13:41:09不用另外定义一个数组,直接比较就可以了。 int num = a.length; loop: for
9、(int i = 1; i num; ) / 从第二个元素开始处理 for (int j = 0; j i; j+) / 把当前元素跟前面的每个元素进行比较 if (ai = aj) / 如果发现重复,用最末的元素替换当前元素 ai = anum - 1; num-; / 重新处理当前元素 continue loop; / 继续处理下一个元素 i+; / 至此,a0anum-1 就是无重复的了 对我有用0 丢个板砖0 引用 举报 管理 TOP #19楼 得分:1 回复于:2007-06-01 17:15:12上面已经说了,直接使用 HashSet 有重复的就不加进去,否则就加进去,多简单的。
10、leojay1 (绯村剑心) 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP #20楼 得分:1 回复于:2007-06-01 17:42:46先排序,再遍历。 或者最简单的用 hashmap jupiter97 (网际异行) 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP #21楼 得分:1 回复于:2007-06-01 20:24:10日本松下有一位高官说过:即使我们不去拜靖国神社韩国人也不会买我们的产品,但不管我们再怎样的去拜靖国神社,中国人照样会买我们的产品。- 一句让中国人从头凉到脚的话。 每直接或间接地购买 100元日本货,你就: 1.为日本厂家增加 40元
11、的毛利收入 2.为日本企业增加了 20元的扩张资本 3.为日本政府增加了 5元的税收收入 4.给日本的所谓自慰队增加了 10 颗子弹 5.多印 68 页的篡改历史的教科书和文件 6.送给小犬蠢一狼参拜鬼社的汽油费 *。如果你买日本汽车,将来开上中国街头的日本坦克就是你造的! *。如果你买日本橱具,将来射穿你儿子头颅的子弹就是你造的! *。如果你买日本电视音响,将来就会在战地喇叭中听到中国人被杀的哀鸣!我们没有时间和权力去采取政治行动,我们只能作力所能及的事,拒买日货是我们对付日本人的最好行动,不但简单而且有效我每天上网必做的一件事就是把此这篇文章贴到可能的地方,只要上网,我至少要贴上 10次!
12、作为一个有良知的中国人,来和我和许多爱国人士一起并肩战斗吧! 请把此文贴到一切可能的地方,你一定会为你的所作所为而自豪 朋友们,我庆幸我生于 80年代,但我更加痛惜我没能在 30年代的战场上手刃鬼子。在我们拥有和平幸福安乐生活的今天,请不要忘了我们爷爷那一代所受到的耻辱! iseeiconquer (smallEar) 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP #22楼 得分:1 回复于:2007-06-01 22:25:09不好意思,这些都不懂.JAVA 语言一点也不懂. liuxing142 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP #23楼 得分:1
13、回复于:2007-06-02 09:55:16如果是在做项目,直接用 Set型的类,如 HashSet,如果要保持输入顺序可用 LinkedHashSet,因为 Set型类,就是为了保证容器中的元素不能重复。不要用 List型,Map 型只能保证 Key不重复,用 Set型的类后,什么算法代码都不用写,直接 add就行了。 如果是在做作业,特别是数据结构的作业,还是自己先搞懂再说吧。 dunai2003 (马尔罗尼) 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP backhead (为什么我喜欢的女孩那总说马天宇) 等 级: #24楼 得分:1 回复于:2007-06-02 11
14、:29:19int a=1,2,3,4,2,4,3; int b=new inta.length; int bnum=0; boolean finded; for(int i=0;i a.length;i+) finded=true; for(int j=0;j b.length;j+)if(ai=bj)finded=false; if(finded)bbnum=ai;bnum+; for(int i=0;i a.length;i+)System.out.print(ai); System.out.println( “ “); for(int i=0;i b.length;i+)System.
15、out.print(bi); - 1234243 1234000 对我有用0 丢个板砖0 引用 举报 管理 TOP #25楼 得分:1 回复于:2007-06-02 13:58:17关注 likgui (LI) 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP #26楼 得分:1 回复于:2007-06-02 23:41:56用一个 For语句就行了,性能很重要。 lyb3333 (光临我们的团队) 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP #27楼 得分:1 回复于:2007-06-03 11:34:47for( length) if(array.IndexOf(
16、currentOne)=-1) array.add (currentOne); 石雕 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP #28楼 得分:0 回复于:2007-06-04 09:02:05该回复于 0001-01-01 00:00:00被管理员或版主删除 beyondliujiaqi 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP #29楼 得分:1 回复于:2007-06-04 10:02:26直接用 temp- zyy_6 对我有用0 等 级: 丢个板砖0 引用 举报 管理 TOP #30楼 得分:0 回复于:2007-06-04 10:03:26并且用
17、 for语句,让他找 zyy_6 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP jsczxy2 等 级: #31楼 得分:1 回复于:2007-06-04 10:56:47int a=new int1,1,2,2,3,3,4,4,5,5; HashSet set=new LinkedHashSet(); for(int i=0;i a.length;i+) set.add(ai); int b=new intset.size(); int c=0; for(Iterator it=set.iterator();it.hasNext();) bc=(Integer)it.next(
18、); System.out.println(bc); c+; 对我有用0 丢个板砖0 引用 举报 管理 TOP #32楼 得分:1 回复于:2007-06-04 21:33:10楼上的方法不错! jay2jin 等 级: 对我有用0 丢个板砖0 引用 举报 管理 TOP 管理菜单 o 生成帖子 o 置顶 o 推荐 o 取消推荐 o 锁定 o 解锁 o 移动 o 编辑 o 删除 o 帖子加分 o 帖子高亮 o 取消高亮 结 帖 发 帖 回 复 相关问题 用 javascript怎样 remove掉数组中的一个元素?急 Java / Web 开发- CSDN . 数据结构笔试题目:如何找出数组中重
19、复的数 C/C+ / C语言- CSDN 社区 . 急,在线等:System.IndexOutOfRangeException: 索引超出了数组界限 急求:可不可以在 PB动态添加组件或控件,如可以请给出方法在线等,高分 . 请各位高手指点:在 vc中如何删除数组重复元素,就如数组中有三个元素都是 . 请问: 如何删除二维数组的重复行! 急!-在线等!马上给分 C/C+ / C . 数组中重复的项去除怎么做? .NET 技术/ ASP.NET - CSDN 社区 community . 有什么方法能高效率的删除一个数组里的重复的元素呢? C/C+ / C 语言 . application和 session的问题(做数组存储和计数用的)在线等待 . 公司简介|招贤纳士|广告服务|银行汇款帐号|联系方式|版权声明|法律顾问|问题报告 北京创新乐知信息技术有限公司 版权所有, 京 ICP 证 070598 号 世纪乐知(北京)网络技术有限公司 提供技术支持 江苏乐知网络技术有限公司 提供商务支持 Email: Copyright 1999-2012, CSDN.NET, All Rights Reserved 关闭 关闭