首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >交换对象数组成员Java

交换对象数组成员Java
EN

Stack Overflow用户
提问于 2016-03-24 21:57:05
回答 4查看 2.8K关注 0票数 0

我正在尝试编写一个接口方法,该方法接受不同对象的数组,并根据对象的getMeasure()方法的返回交换两个数组元素。

我的问题是,当它是一个对象时,如何交换两个数组元素,或者当您不知道对象必须是什么时,如何存储临时对象的值。

到目前为止,我的代码如下:

代码语言:javascript
复制
public static void swapMinAndMax(Measurable[] objects)
{  
    double largest = 0;
    int lgIndex = 0;
    int smIndex = 0;

    for(int i = 1; i < objects.length; i++)
    {
        if(objects[i].getMeasure() > largest){
            largest = objects[i].getMeasure();
            lgIndex = i;
        }                 
    }
    for(int i = 0; i < objects.length; i++)
    {
        if(objects[i].getMeasure() < largest){
            largest = objects[i].getMeasure();
            smIndex = i;
        }        
    }
    //need to swap objects[lgIndex] with objects[smIndex]
}
EN

回答 4

Stack Overflow用户

发布于 2016-03-24 22:02:03

您可以使用Measurable变量进行交换。

代码语言:javascript
复制
Measurable measurable = objects[lgIndex];
objects[lgIndex] = objects[smIndex];
objects[smIndex] = measurable;
票数 0
EN

Stack Overflow用户

发布于 2016-03-24 22:02:33

你一定知道这个对象是什么,它是一个Measurable。因此:

代码语言:javascript
复制
//need to swap objects[lgIndex] with objects[smIndex]
Measurable temp = objects[smIndex];
objects[smIndex] = objects[lgIndex];
objects[lgIndex] = temp;
票数 0
EN

Stack Overflow用户

发布于 2016-03-24 22:04:44

首先,将您的smallestlargest (这不是您想要的)进行比较,您可以通过一个循环找到最小和最大的。最后,swap存储一个带有临时引用的值;然后将另一个值替换为未存储的值,最后将未修改的位置设置为临时位置。像这样,

代码语言:javascript
复制
public static void swapMinAndMax(Measurable[] objects) {
    int lgIndex = 0;
    int smIndex = 0;

    for (int i = 1; i < objects.length; i++) {
        if (objects[i].getMeasure() > objects[lgIndex].getMeasure()) {
            lgIndex = i;
        }
        if (objects[i].getMeasure() < objects[smIndex].getMeasure()) {
            smIndex = i;
        }
    }
    if (lgIndex != smIndex) {
        Measure t = objects[lgIndex];
        objects[lgIndex] = objects[smIndex];
        objects[smIndex] = t;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36201928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档