Sorting two arrays simultaneously

后端 未结 8 2125
终归单人心
终归单人心 2020-12-01 17:29

I\'m learning and understanding Java now, and while practising with arrays I had a doubt. I wrote the following code as an example:



        
8条回答
  •  自闭症患者
    2020-12-01 18:12

    You have to ZIP your two arrays into an array which elements are instances of a class like:

    class NameNumber 
    {
    
        public NameNumber(String name, int n) {
            this.name = name;
            this.number = n;
        }
    
        public String name;
        public int number;
    }  
    

    And sort that array with a custom comparator.

    Your code should be something like:

    NameNumber [] zip = new NameNumber[Math.min(a.length,b.length)];
    for(int i = 0; i < zip.length; i++)
    {
        zip[i] = new NameNumber(a[i],b[i]);
    }
    
    Arrays.sort(zip, new Comparator() {
    
        @Override
        public int compare(NameNumber o1, NameNumber o2) {
            return Integer.compare(o1.number, o2.number);
        }
    });
    

提交回复
热议问题