tomato1232 2022-09-14 19:19 采纳率: 100%
浏览 28
已结题

数组输出重复元素打印控制台

img


看看大家的解题思路,除了循环遍历添加次数统计以外,都有什么办法,解出正确答案!

  • 写回答

3条回答 默认 最新

  • a5156520 2022-09-14 20:00
    关注
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    public class findSameNum {
    
        public static int [] findSameNum1(int [] arr) {
            
            //https://blog.csdn.net/weixin_34927903/article/details/114033321
            Arrays.sort(arr);
            
            ArrayList same = new ArrayList();
            
            ArrayList result = new ArrayList();
            
            int pre=-1;
            for(int i=0;i<arr.length-1;i++) {
                
                if(arr[i]==arr[i+1]) {
                    result.add(arr[i]);
                }else if(arr[i]!=arr[i+1]&&arr[i]==pre){
                    result.add(arr[i]);
                }
                pre=arr[i];
            }
            
            System.out.println(result);
            
            int [] rarr = new int[result.size()];
            
            for(int i=0;i<result.size();i++) {
                rarr[i] = (Integer)result.get(i);
            }
            
            
            return rarr;
        }
        
        public static int [] findSameNum2(int [] arr) {
        
            ArrayList notSame = new ArrayList();
            
            for(int i=0;i<arr.length;i++) {
                
                int find=0;
                for(int j=0;j<arr.length;j++) {
                    if(arr[i]==arr[j]&&i!=j) {
                        
                        find=1;
                        break;
                    }
                }
                
                if(find==0) {
                    notSame.add(arr[i]);
                }
            }
            //System.out.println("notSame="+notSame);
            
            ArrayList same = new ArrayList();
            for(int i=0;i<arr.length;i++) {
                //https://www.runoob.com/java/java-arraylist-contains.html
                if(notSame.contains(arr[i])==false) {
                    same.add(arr[i]);
                }
            }
            
            System.out.println(same);
            int [] rarr = new int[arr.length-notSame.size()];
            
            for(int i=0;i<same.size();i++) {
                rarr[i] = (Integer)same.get(i);
            }
            
            
            
            return rarr;
        }
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            int [] arr = {1,1,2,3,1,4,8,2,7,5,4,10,6,5,9};
            
            findSameNum1(arr);
            findSameNum2(arr);
            
        }
    
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月22日
  • 已采纳回答 9月14日
  • 创建了问题 9月14日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度