java重复元素个数

java重复元素个数

问:java用程序实现求两个数组中相同元素的个数
  1. 答:public class T
    {
    public static void main(String[] args)
    {
    int[] oneArray = {30, 1, 9, 20, 11, 15, 41,25,52,8};
    int[] twoArray = {15, 7, 1, 30, 22, 13, 40,11,8,50};
    int count=0;
    boolean find;
    for(int i=0;i<oneArray.length;i++)
    {
    find=false;
    for(int j=0;j<twoArray.length;j++)
    {
    if(oneArray[i]==twoArray[j])
    {
    if(!find)
    {
    count++;
    find=true;
    }
    twoArray[j]=-1;
    }
    }
    }
    System.out.println("数组oneArray与数组twoArray共有"+count+"个相同的元素!");
    }
    }
问:java中怎样判断字符数组中相同元素的个数
  1. 答:看这段代码:
    public class findChar {
    public static void main(String[] arg) {
    //你要测试的字符串
    String testChar = "aaaasss";
    // 记录某个字符出现的个数,在这里是'a'
    int count = 0;
    //将字符串变为字符数组
    char[] ch = sc.next().toCharArray();
    //循环判断是否有字符'a'
    for (char a : ch) {
    switch (a) {
    // 如果有计数器加1
    case 'a':
    count++;
    break;
    }
    }
    }
    //输入文件中包含字符'a'的个数
    System.out.println("其中含有a " + count + " 个");
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
    这样就OK!有什么问题可以再问我!
  2. 答:从前向后循环,一个个查找判断就行了吧?如果要找各个元素相同的次数,可以用MAP来存放,以元素值为key,出现次数为value 每次遇到等于key的字符就将value加1
问:一个java编程题,怎么求出数组中重复数字的出现次数,并按次数从大到下排序
  1. 答:前提 有一个数组 :int[] a = {1,2,3,4,5………………,3,10,1};
    先要知道数组的最大最小值。
    比如最大10,最小1;
    int temp = new int[11] //比最大值大1,保证最后一个坐标是最大值
    for(int i=0;i<数组元素个数;i++)
    temp[a[i]]++
    运行完了之后你对temp数组排序一下就行了,排序不用我说了吧
    排序的时候要建立个数组记录排序后的数字以前的下标,下标就是那个重复出现的数字
    这是最简单的方案,但是如果你最大值最小值较大,就不适用了
  2. 答:排序的话简单,Arrays的sort方法可以结局
    出现的次数的话,推荐用Map来做
    List list = Arrays.asList("aa,xx,ss,xx,ss,e,w,a,aa".split(","));
    Map map = new HashMap();
    for (String s : list) {
    Integer i = map.get(s);
    if(i == null)
    map.put(s, 1);
    else
    map.put(s, ++i);
    }
    System.out.println(map);
  3. 答:使用三个变量存储在比较
  4. 答:循环读取,循环比较!
java重复元素个数
下载Doc文档

猜你喜欢