黑马程序员技术交流社区

标题: 数组中存在相同元素,如何把相同元素都查找出来? [打印本页]

作者: 于腾飛    时间: 2013-3-12 11:04
标题: 数组中存在相同元素,如何把相同元素都查找出来?
本帖最后由 于腾飛 于 2013-3-12 17:48 编辑

数组中存在相同元素,如何把相同元素都查找出来?
查找出第一个元素的位置可以,怎样都查找出来呢?
作者: scott0610    时间: 2013-3-12 11:24
  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.         }
复制代码
希望对你有所帮助。

作者: 郑昌奋    时间: 2013-3-12 11:31
思路1、可以先遍历数组,获取到每一个字符 2、可以把数组变成一个集合,然后 再新建一个集合,把有相同集合的元素添加进来。3、最后把相同的集合输出就OK了
作者: 李辉    时间: 2013-3-12 12:34
本帖最后由 李辉 于 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数组,因为没有数跟最后一个数比较了。
作者: 于腾飛    时间: 2013-3-12 12:40
袁见 发表于 2013-3-12 11:24
希望对你有所帮助。

太感谢了  谢谢
作者: scott0610    时间: 2013-3-12 12:40
李辉 发表于 2013-3-12 12:34
你的代码有问题,queryEqual方法里面的问题, b[k]=a; 这句话之前应该增加一个判断,判断a是否已经在b数 ...

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

谢谢 你的提醒  我会注意思路的 我总是思路混乱
作者: 李辉    时间: 2013-3-12 12:44
袁见 发表于 2013-3-12 12:40
明白你的意思,谢谢你的提醒。一起加油。

:) 加油!!!
作者: 马甲大王    时间: 2013-3-12 15:36
把数据转成List。。呵呵,自动去重。

作者: 曹春贵    时间: 2013-3-12 16:30
{:soso_e179:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2