A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 于腾飛 于 2013-3-12 17:48 编辑

数组中存在相同元素,如何把相同元素都查找出来?
查找出第一个元素的位置可以,怎样都查找出来呢?

评分

参与人数 1黑马币 +6 收起 理由
scott0610 + 6 赞一个!

查看全部评分

9 个回复

倒序浏览
  1. public static void main(String[] args) {

  2.                 int[] a=new int[]{1,3,9,5,3,7,5};//定义一个具有重复元素的数组
  3.                 int[] b=queryEqual(a);//调用查找相同元素的方法。
  4.                 for(int i=0;i<b.length;i++){//遍历相同元素的值
  5.                         System.out.println(b[i]);
  6.                 }
  7.                
  8.         }
  9.        
  10.         public static int[] queryEqual(int[] a){
  11.                 int[] b=new int[a.length];//定义一个数组,用于存放相同元素
  12.                 int k=0;//定义一个变量,用于标识b数组的下标。
  13.                 for(int i=0;i<a.length;i++){
  14.                         for(int j=i+1;j<a.length;j++){
  15.                                 if(a[i]==a[j]){
  16.                                         b[k]=a[i];
  17.                                         k++;
  18.                                 }
  19.                         }
  20.                 }
  21.                 return b;
  22.         }
复制代码
希望对你有所帮助。
回复 使用道具 举报
思路1、可以先遍历数组,获取到每一个字符 2、可以把数组变成一个集合,然后 再新建一个集合,把有相同集合的元素添加进来。3、最后把相同的集合输出就OK了
回复 使用道具 举报
本帖最后由 李辉 于 2013-3-12 12:38 编辑
袁见 发表于 2013-3-12 11:24
希望对你有所帮助。


你的代码有问题,queryEqual方法里面的问题, b[k]=a; 这句话之前应该增加一个判断,判断a是否已经在b数组里了,如果在,就不往里加了,这样就可以得到数组里面所有存在重复的元素。如果你不增加判断,当a数组里某个元素存在多份的时候,那这个元素在b中也会存在多份。
    如果你是想把每个重复元素各个出现都记在b里面,这样写代码也不对,比如a数组里面有a1 , a2,a3, a4, 这四个元素相等,a1=a2,a1进到b里,a1=a3,又进一次,a1=a4,又进一次、、、、,    还有一个问题:a4进不到b数组了,每组相同元素的最后一个都进不到b数组,因为没有数跟最后一个数比较了。

评分

参与人数 1技术分 +1 收起 理由
scott0610 + 1

查看全部评分

回复 使用道具 举报
袁见 发表于 2013-3-12 11:24
希望对你有所帮助。

太感谢了  谢谢
回复 使用道具 举报
李辉 发表于 2013-3-12 12:34
你的代码有问题,queryEqual方法里面的问题, b[k]=a; 这句话之前应该增加一个判断,判断a是否已经在b数 ...

明白你的意思,谢谢你的提醒。一起加油。
回复 使用道具 举报
郑昌奋 发表于 2013-3-12 11:31
思路1、可以先遍历数组,获取到每一个字符 2、可以把数组变成一个集合,然后 再新建一个集合,把有相同集合 ...

谢谢 你的提醒  我会注意思路的 我总是思路混乱
回复 使用道具 举报
李辉 中级黑马 2013-3-12 12:44:00
8#
袁见 发表于 2013-3-12 12:40
明白你的意思,谢谢你的提醒。一起加油。

:) 加油!!!
回复 使用道具 举报
把数据转成List。。呵呵,自动去重。
回复 使用道具 举报
{:soso_e179:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马