0

私のコードは次のとおりです。

Person.java

package com.example;

import java.util.Comparator;

public class Person implements Comparator<Person> {

    String name;
    int emp_id;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getEmp_id() {
        return emp_id;
    }

    public void setEmp_id(int emp_id) {
        this.emp_id = emp_id;
    }

    public Person(String name,int emp_id) {
        this.name = name;
        this.emp_id = emp_id;
    }
}

PersonSort.java

package com.example;

import com.example.Person;
import java.util.*;

public class PersonSort implements Comparator<Person> {

    public int compare(Person arg0, Person arg1) {
        return arg0.getName().compareTo(arg1.getName());
    }
}

PersonDetails.java

package com.example;

import java.util.*;

public class PersonDetails {

    public List<Person> enter() {
        List<Person> list = new ArrayList<Person>();
        list.add(new Person("D", 1));
        list.add(new Person("A", 56));
        list.add(new Person("G", 43));
        list.add(new Person("C", 32));
        return list;    
    }

    public static void main(String[] args) {
        PersonDetails details = new PersonDetails();
        List<Person> list = details.enter();
        Collections.sort(list, new PersonSort());
        Iterator<Person> it = list.iterator();
        while (it.hasNext()) {
            Person p = it.next();
            System.out.println(p.getName() + " " + p.getEmp_id());
        }
    }
}

PersonSort.javaでは、compareToを使用して2つの文字列を比較しています。2つの整数を比較するときのような別の方法はありますか?たとえば、以下の2つの従業員IDを比較します。

public int compare(Person arg0, Person arg1) {
    if (arg0.emp_id == arg1.emp_id)
        return 0;
    else if (arg0.emp_id > arg1.emp_id)
        return 1;
    else
        return -1;
}

compareToを呼び出さずに2つの文字列を比較するこのようなロジックはありますか?

4

1 に答える 1

0

呼び出さずに2つの文字列を比較するこのようなロジックはありますcompareToか?

さて、あなたはいくつかのコードを書くことができますString.compareTo。(そして、それが何をするのか謎はありません。たとえば、OpenJDKのソースコードを見てください。)

しかし、これを行う意味はありません。Stringメソッドは文字列オブジェクトのプライベート状態に直接アクセスできるため、既存のStringメソッドはカスタムコードよりも高速に実行できます。

于 2013-02-13T12:47:25.513 に答える