liubin21w
liubin21w
采纳率100%
2016-05-24 14:24 阅读 4.6k
已采纳

java 集合问题找出两个集合中相同的元素并打印出来

把1-100 数随机放入到 数组长度为[97] 并且这些元素不能重复,找出未输入进数组的数!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

8条回答 默认 最新

  • 已采纳
    liubin21w liubin21w 2016-05-25 09:57

    package set;

    import java.util.HashSet;

    /*

    • 作业: 把1-100 数随机不重复放入到 数组[97] ,找出未存入的数!
      */
      public class Test5 {

      public static void main(String[] args) {
      // 1.创建 一个 HashSet集合,保证元素唯一性
      HashSet ha=new HashSet();

      while(ha.size()<=96){
          ha.add((int)(Math.random()*100+1));
      }  
      System.out.print("随机存放的集合为:"+ha);
      
      //定义一个数组,数组里面的元素是1--100
      int[] arr=new int[100];
      for (int i = 0; i < arr.length; i++) {
          arr[i]=i+1;
      }
      // 检查 集合 ha 中是否包含数组Arr 
      for (int j = 0; j < arr.length; j++) {
          if(!ha.contains(arr[j])){
              System.out.println("未存入的数是:"+arr[j]);
          }
      }
      
    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-05-24 14:32
    点赞 评论 复制链接分享
  • lzj0327 lzj0327 2016-05-24 15:01

    生成1-100的随机数97个,放在list1和数组中,通过list1去重,list1和数组的元素相同,定义list2存放1-100,然后list2.removeAll(list1)就行了

    点赞 评论 复制链接分享
  • ZSGG_ACM ZSGG_ACM 2016-05-24 15:07

    鉴于你取得数数值很小,在1-100以内,你可以用一个101大小的数组标记哪些被取出来了。1表示取出来了,0表示还没取出。然后你再遍历标记数组,
    就可以求出哪些没有被取出来过。而对于“集合问题找出两个集合中相同的元素并打印出来”可以Set容器,把第一个集合放进Set容器,然后遍历第二
    个集合,如果发现遍历的这个数被Set contains,那么就是重合的。

    点赞 评论 复制链接分享
  • sggdjfkf147896325 scholarSu 2016-05-24 15:43

    创建一个有100个元素的hashset,保存1到100。遍历数组,然后删除hashset里相同的元素。遍历完数组后hashset里剩下的元素就是答案。时间复杂度为O(n) ,n为数组长度

    点赞 评论 复制链接分享
  • wojiushiwo945you 毕小宝 2016-05-24 23:40

    直接用集合的api的话,就比较容易了,就用Java的ArrayList,遍历一个,判断每个值是否在另一个集合中集合的contains方法。

    点赞 评论 复制链接分享
  • liubin21w liubin21w 2016-05-24 23:58

    回复楼上的几位我知道思路 遍历我也写出来了 只是除去相同元素 没有搞定谢谢大家我不要思路我要代码!!!!

    点赞 评论 复制链接分享
  • rui888 兔子托尼啊 2016-05-25 02:19
    点赞 评论 复制链接分享

相关推荐