Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于字符串成员对java对象进行排序_Java_Sorting - Fatal编程技术网

基于字符串成员对java对象进行排序

基于字符串成员对java对象进行排序,java,sorting,Java,Sorting,我有一个自定义类型的对象,名为后缀,定义为 class Suffix { int index; String suff; } 我创建一个后缀类型的对象数组 Suffix s[] = new Suffix[10]; 我需要根据字符串suff数据成员对其进行排序。我该怎么做?我无法理解大多数在线定制实现 例如: 如果我有s[0].suff=“hats”,s[1].suff=“ats”,s[2].suff=“ts”。现在我需要根据后缀对这个数组进行排序(“ats”,1)、(

我有一个自定义类型的对象,名为
后缀
,定义为

class Suffix
{
      int index;
      String suff;
}
我创建一个后缀类型的对象数组

Suffix s[] = new Suffix[10];
我需要根据字符串
suff
数据成员对其进行排序。我该怎么做?我无法理解大多数在线定制实现

例如: 如果我有s[0].suff=“hats”,s[1].suff=“ats”,s[2].suff=“ts”。现在我需要根据后缀对这个数组进行排序<代码>(“ats”,1)、(“hats”,0)和(“ts”,2)应按顺序排序

查看界面。此接口将允许根据您自己的标准比较您的类

快速谷歌搜索出现了。

查看界面。此接口将允许根据您自己的标准比较您的类

快速谷歌搜索出现了。

如果您的对象扩展了类似的界面,您可以使用array.sort(..)

class Suffix implements Comparable<Suffix>
{
   int index;
   String suff;

  @Override
  public int compareTo(Suffix o) {

     return this.suff.compareTo(o.suff);
  }
}
如果对象扩展了可比较的接口,则可以使用Arrays.sort(..)

class Suffix implements Comparable<Suffix>
{
   int index;
   String suff;

  @Override
  public int compareTo(Suffix o) {

     return this.suff.compareTo(o.suff);
  }
}

你有三种可能:

  • 编写您自己的排序算法并比较
    suff
    字符串

  • Suffix
    类中实现
    compariable
    接口,重写
    compariteto()
    方法并使用
    Arrays.sort()以可比较对象数组为参数

  • 创建一个
    比较器
    ,并使用
    array.sort()
    方法获取数组和比较器

  • 第三种方法有一个优点。如果要按
    index
    而不是
    suff
    param进行排序,可以将另一个比较器传递给
    sort()
    方法

            Suffix s[] = new Suffix[10];
    
            Comparator comp = new Comparator<Suffix>(){
    
                @Override
                public int compare(Suffix arg0, Suffix arg1)
                {
                    return arg0.suff.compareTo(arg1.suff);
                }
            };
    
            Arrays.sort(s,comp);
    
    后缀s[]=新后缀[10];
    比较器comp=新比较器(){
    @凌驾
    公共整数比较(后缀arg0,后缀arg1)
    {
    返回arg0.suff.compareTo(arg1.suff);
    }
    };
    数组。排序(s,comp);
    

    您的
    后缀
    类中没有可更改的内容。提示:您可以使用比较器作为静态字段创建一个额外的类。

    您有三种可能:

  • 编写您自己的排序算法并比较
    suff
    字符串

  • Suffix
    类中实现
    compariable
    接口,重写
    compariteto()
    方法并使用
    Arrays.sort()以可比较对象数组为参数

  • 创建一个
    比较器
    ,并使用
    array.sort()
    方法获取数组和比较器

  • 第三种方法有一个优点。如果要按
    index
    而不是
    suff
    param进行排序,可以将另一个比较器传递给
    sort()
    方法

            Suffix s[] = new Suffix[10];
    
            Comparator comp = new Comparator<Suffix>(){
    
                @Override
                public int compare(Suffix arg0, Suffix arg1)
                {
                    return arg0.suff.compareTo(arg1.suff);
                }
            };
    
            Arrays.sort(s,comp);
    
    后缀s[]=新后缀[10];
    比较器comp=新比较器(){
    @凌驾
    公共整数比较(后缀arg0,后缀arg1)
    {
    返回arg0.suff.compareTo(arg1.suff);
    }
    };
    数组。排序(s,comp);
    

    您的
    后缀
    类中没有可更改的内容。提示:您可以使用Comparator作为静态字段创建一个额外的类。

    除了使用Comparable作为@insert username here和@vinayknl之外,另一个是使用Comparator。在要排序的方法中添加以下内容:

    Comparator comparator = new Comparator<Suffix>() {
    
        public int compare(Object o1, Object o2) {
            Suffix s1 = (Suffix) o1;
            Suffix s2 = (Suffix) o2; 
            return s1.getSuff().compareTo(s2.getSuff());
        }
    }
    Array.sort(s, comparator);
    
    比较器比较器=新比较器(){ 公共整数比较(对象o1、对象o2){ 后缀s1=(后缀)o1; 后缀s2=(后缀)o2; 返回s1.getSuff().compareTo(s2.getSuff()); } } 数组。排序(s,比较器);

    注意:别忘了添加getter。

    除了在此处使用Comparable作为@insert username和@vinayknl之外,另一个是使用Comparator。在要排序的方法中添加以下内容:

    Comparator comparator = new Comparator<Suffix>() {
    
        public int compare(Object o1, Object o2) {
            Suffix s1 = (Suffix) o1;
            Suffix s2 = (Suffix) o2; 
            return s1.getSuff().compareTo(s2.getSuff());
        }
    }
    Array.sort(s, comparator);
    
    比较器比较器=新比较器(){ 公共整数比较(对象o1、对象o2){ 后缀s1=(后缀)o1; 后缀s2=(后缀)o2; 返回s1.getSuff().compareTo(s2.getSuff()); } } 数组。排序(s,比较器);

    注意:不要忘记添加getter。

    我需要根据字符串suff数据成员对其进行排序。
    ??请举例。
    我需要根据字符串suff数据成员对其进行排序。
    ??请举个例子。
    应该更安全;)<代码>实现可比性
    应该更安全;)