Java 方法类的比较 包问题1; 公共级特许经营实施可比性{ 私有字符串位置; 私人双总计=0; 私人字符串所有者; 公共特许经营权(字符串位置、双倍总计、字符串所有者){ 这个位置=位置; 这个.总计=总计; this.owner=所有者; } 公共字符串getLocation(){ 返回位置; } 公共双getTotal(){ 返回总数; } 公共字符串getOwner(){ 归还所有人; } 公共国际比较(特许经营权){ int stateComarition=this.getLocation().compareTo(that.getLocation()); Double sales=Double.valueOf(this.getTotal()); Double that sales=Double.valueOf(that.getTotal()); int-salesComparition=sales.compareTo(thatSales); 如果(状态比较==0){ 如果(salesComparition>0) 返回-1; else if(salesComparition0) 返回-1; else if(salesComparition

Java 方法类的比较 包问题1; 公共级特许经营实施可比性{ 私有字符串位置; 私人双总计=0; 私人字符串所有者; 公共特许经营权(字符串位置、双倍总计、字符串所有者){ 这个位置=位置; 这个.总计=总计; this.owner=所有者; } 公共字符串getLocation(){ 返回位置; } 公共双getTotal(){ 返回总数; } 公共字符串getOwner(){ 归还所有人; } 公共国际比较(特许经营权){ int stateComarition=this.getLocation().compareTo(that.getLocation()); Double sales=Double.valueOf(this.getTotal()); Double that sales=Double.valueOf(that.getTotal()); int-salesComparition=sales.compareTo(thatSales); 如果(状态比较==0){ 如果(salesComparition>0) 返回-1; else if(salesComparition0) 返回-1; else if(salesComparition,java,class,methods,arraylist,compareto,Java,Class,Methods,Arraylist,Compareto,这门课有一个compareTo方法。我想知道你们能否详细解释一下这个方法的作用…基本上我需要你们追踪它并一步一步地解释我。非常感谢 package prob1; public class Franchise implements Comparable<Franchise> { private String location; private double totals = 0; private String owner; public Franch

这门课有一个compareTo方法。我想知道你们能否详细解释一下这个方法的作用…基本上我需要你们追踪它并一步一步地解释我。非常感谢

package prob1;

public class Franchise implements Comparable<Franchise> {
    private String location;
    private double totals = 0;
    private String owner;

    public Franchise(String location,double totals,String owner){
        this.location = location;
        this.totals = totals;
        this.owner = owner;
    }
    public String getLocation(){
        return location;
    }
    public double getTotal(){
        return totals;
    }
    public String getOwner(){
        return owner;
    }
    public int compareTo(Franchise that) {
        int stateComparition = this.getLocation().compareTo(that.getLocation()); 
        Double sales = Double.valueOf(this.getTotal());    
        Double thatSales = Double.valueOf(that.getTotal());
        int salesComparition = sales.compareTo(thatSales);    

        if(stateComparition == 0){
            if(salesComparition > 0)
                 return -1;
            else if(salesComparition < 0)
                 return 1;
            else
                 return 0;
        }
           return stateComparition;         
    }

    public String toString(){
        String result = "";
        result = "Owner =  " + getOwner() + " ,State = "+ getLocation() + " ,Sales = " + getTotal() + "\n";

        return result;
    }

}
包问题1;
导入java.util.ArrayList;
导入java.util.Collections;
公共类压裂测试器{
/**
*@param args
*/
公共静态void main(字符串[]args){
ArrayList特许权=新的ArrayList();
特许经营权franchaise1=新特许经营权(“CA”,3300,“Corey”);
特许经营权franchaise2=新特许经营权(“GA”,1000,“帕托”);
特许经营权franchaise4=新特许经营权(“NC”,3300,“Travis”);
特许经营权franchaise3=新特许经营权(“NC”,3500,“罗伊”);
特许经营权。添加(franchaise1);
特许经营权。添加(franchaise2);
特许经营权。添加(franchaise4);
特许经营权。添加(franchaise3);
收集、分类(特许经营);
适用于(特许经营一:特许经营){
系统输出打印LN(i);
}
}
}

这是我的测试仪

虽然您可以从中获得此信息,但此答案将有助于理解compareTo()方法的概念,供其他在此访问的用户使用

当您实现
Comparable
接口时,您的
compareTo()
方法用于比较不同的对象

package prob1;
import java.util.ArrayList;
import java.util.Collections;

public class FracnahiseTester {

    /**
     * @param args
     */
    public static void main(String[] args) {
         ArrayList<Franchise> franchises = new ArrayList<Franchise>();

         Franchise franchaise1 = new Franchise("CA",3300,"Corey");
         Franchise franchaise2 = new Franchise("GA",1000,"Pato");
         Franchise franchaise4 = new Franchise("NC",3300,"Travis");
         Franchise franchaise3 = new Franchise("NC",3500,"Roy");

         franchises.add(franchaise1);
         franchises.add(franchaise2);
         franchises.add(franchaise4);
         franchises.add(franchaise3);

         Collections.sort(franchises);
         for(Franchise i : franchises){
             System.out.println(i);
         }
    }

}
public int compareTo(特许经营权){
int stateComarition=this.getLocation().compareTo(that.getLocation());
Double sales=Double.valueOf(this.getTotal());
Double that sales=Double.valueOf(that.getTotal());
int-salesComparition=sales.compareTo(thatSales);
如果(状态比较==0){
如果(salesComparition>0)
返回-1;
else if(salesComparition<0)
返回1;
其他的
返回0;
}
返回状态比较;
}
  • public int compareTo()
    用于将作为参数传递的对象与调用此方法的对象进行比较
  • 如果
    这个
    对象小于
    那个
    对象,则返回一个负整数,在您的例子中是它的
    -1
    。这意味着
    这个
    对象以排序方式排在
    那个
    之前
  • 如果
    这个
    等于
    那个
    对象,那么
    0
    应该相等,这意味着对象相等
  • 如果
    大于
    ,则返回的
    对象大于正整数,在您的情况下,它是
    1
    。这意味着当对
    特许经营
    类型的对象进行排序时,
    位于
    之后
    
这与问题的格式不太相符。有没有什么特别的东西不适用,你在文档或dee互联网上的其他地方找不到一个简单的答案?看起来有点像是一个家庭作业问题,你很难做对吗?这是一个硬件问题,但工作完全正确,但我只是想确定它是如何工作的
public int compareTo(Franchise that) {
    int stateComparition = this.getLocation().compareTo(that.getLocation()); 
    Double sales = Double.valueOf(this.getTotal());    
    Double thatSales = Double.valueOf(that.getTotal());
    int salesComparition = sales.compareTo(thatSales);    

    if(stateComparition == 0){
        if(salesComparition > 0)
             return -1;
        else if(salesComparition < 0)
             return 1;
        else
             return 0;
    }
       return stateComparition;         
}