У меня проблемы с моим кодом.Я пытался использовать строки для arraylist, но это не работает.Когда я помещаю имя класса в массив, оно печатает только другое значение.Я сделал класс, чтобы получить длину, потому что выполнение этого в компараторе не работало;это просто дает мне не может найти ошибку символа.
import java.util.*;
import java.io.*;
class StringLengthComparator implements Comparator<Name>
{
public int compare(Name n1, Name n2)
{
return n1.getLength()-n2.getLength();
}
}
public class Name implements Comparable<Name>
{
public static String name;
public Name(String n)
{
this.name = n;
}
public int compareTo(Name that)
{
return this.name.compareTo(that.name);
}
public String getName()
{
return this.name;
}
public int getLength()
{
return this.name.length();
}
public static void main(String[] args) throws Exception
{
ArrayList<Name> N = new ArrayList<>(5);
BufferedReader keyIn = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please Enter Name: ");
//String n = keyIn.readLine();
for(int i=0;i<5;i++)
{
String n = keyIn.readLine();
N.add(new Name(n));
}
System.out.print("\n");
Collections.sort(N);
for(int i=0;i<N.size();i++)
{
System.out.println(N.get(i));
}
System.out.print("\n");
Collections.sort(N, new StringLengthComparator());
for(int i=0;i<N.size();i++)
{
System.out.println(N.get(i));
}
}
}
Ошибка # 1 для ArrayList <\ String> N = новый ArrayList <\ String>
Ошибка # 2 для ArrayList <\ Name> N = новый ArrayList <> (5)