我已经使用比较器对列表进行排序,但我的列表没有排序,m pgm也没有错误 [英] I have used comparator to sort the list but my list is not getting sorted also there's no error in m pgm

查看:90
本文介绍了我已经使用比较器对列表进行排序,但我的列表没有排序,m pgm也没有错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经使用比较器对列表进行排序,但是我的列表没有排序,我的pgm也没有错误。





在此先感谢。



我尝试过:



import java .util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.Iterator;

import java.util.List;

import java.util.Scanner;

import java.util.TreeSet;



class StringLengthComparator实现Comparator< string>

{



@Override

public int compare(String a1,String a2){

int s1 = a1.length();

int s2 = a2.length();

if(s1> s2)

{

返回1;

}

else if(s1< s2)

{

返回-1;

}

返回0;

}



}





公共类sundayskip {

public static void main(String args [])

{





List< string> str = new ArrayList< string>();

str.add(xbs);

str.add(esd);

str.add(aas);

str.add(bsv);





Collections.sort(str,new StringLengthComparator());





for(String i:str)

{



System.out.println(i);

}





}

}

解决方案

  1. Java有 String s,而不是 string s。
  2. 您传递了四个不同的 String s 具有相同的长度到'长度比较器'。 : - )







如下输入,例如

 str.add(  xbs); 
str.add( esd);
str.add( aaaa);
str.add( aas);
str.add( zz);
str.add( bsv);



输出是

 zz 
xbs
esd
aas
bsv
aaaa


I have used comparator to sort the list but my list is not getting sorted also there's no error in my pgm.


Thanks in advance.

What I have tried:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
import java.util.TreeSet;

class StringLengthComparator implements Comparator<string>
{

@Override
public int compare(String a1, String a2) {
int s1=a1.length();
int s2=a2.length();
if(s1>s2)
{
return 1;
}
else if(s1<s2)
{
return -1;
}
return 0;
}

}


public class sundayskip {
public static void main(String args[])
{


List<string> str=new ArrayList<string>();
str.add("xbs");
str.add("esd");
str.add("aas");
str.add("bsv");


Collections.sort(str, new StringLengthComparator());


for(String i:str)
{

System.out.println(i);
}


}
}

解决方案

  1. Java has Strings, not strings.
  2. you are passing four different Strings having the same length to a 'Length Comparator'. :-)




with the following input, for instance

str.add("xbs");
str.add("esd");
str.add("aaaa");
str.add("aas");
str.add("zz");
str.add("bsv");


the output is

zz
xbs
esd
aas
bsv
aaaa


这篇关于我已经使用比较器对列表进行排序,但我的列表没有排序,m pgm也没有错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆