nibbit
@nibbit
Изучаю Java, c нуля

Как правильно написать сортировку массива объектов?

Подскажите пожалуйста что я делаю не так, никак не могу разобраться . Нужно отсортировать строки по длине.
package lesson6;


import java.util.Scanner;

public class Student {
	String name;
	
	
	
	
public static Student[] createMass(int n){
	Scanner sc1=new Scanner(System.in);
	System.out.println("Введите количество строк");
	if(sc1.hasNextInt()){
	n=sc1.nextInt();	
	}
	Student[] mass = new Student[n];
	for(int i = 0;i<mass.length;i++){
		mass[i] = new Student();
		mass[i].create();
		
	}
	return mass;
}

public   void create(){
	Scanner sc = new Scanner(System.in);
	System.out.println(" Введите имя ");
	if(sc.hasNextLine()){	
	name = sc.nextLine();
	if(name.endsWith("end")){
		name=" ";
	}
	}
	}	
	
	
	
	
public static void showMas(Student[]mass){
	for(int i=0;i<mass.length;i++){
		System.out.print("["+i+"]");
		mass[i].show();
	}
	
}
public void show(){
	System.out.println(name);
}
public void show1(Student[]mass){
	for(int i=0;i<mass.length;i++){
		System.out.print("["+i+"]");
	}
}
public static void sartirovka(Student mass[]){
	for(int j = 0; j<mass.length;j++){
		for( int i = j+1;i<mass.length;i++);{
			if( mass[i].compareTo( mass[j])<0){
				Student t = mass[j];
				mass[j] = mass[i];
				mass[i] = t;
				
				
			}
		}
	System.out.println(mass[j]);
			}
		}
  • Вопрос задан
  • 190 просмотров
Решения вопроса 1
jaxtr
@jaxtr
JavaEE/Spring-разработчик
Stream.of(mass)
        .sorted((m1, m2) -> m1.name.length() < m2.name.length() ? -1 : 1)
        .toArray();


Если я правильно понял, что нужно отсортировать массив студентов по длине имени.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ifqthenp
Эта задача решается с помощью интерфейсов.
Но, судя по тому как неопрятно и запутанно написан код, Вам лучше начать учить джаву с самых основ.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы