Задать вопрос
@snack150

Можно ли как-то упростить код на Java?

Есть задание: дан массив с числами в диапазоне от 0 до 100. Необходимо написать функцию, которая будет менять первую и вторую цифру местами в двухзначных числах, при этом, функция должна игнорировать однозначные и трехзначные числа. Функцию необходимо реализовать с использованием класса ArrayList.
Пример: дан массив [10, 15, 11, 6, 3, 82, 100]
Должно получиться: [01, 51, 11, 6, 3, 28, 100]
И вот моя реализация:
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        
        ArrayList<Integer> numbers = new ArrayList<>();
        
        numbers.add(10);
        numbers.add(15);
        numbers.add(11);
        numbers.add(6);
        numbers.add(3);
        numbers.add(82);
        numbers.add(100);
        
        System.out.println("Исходный массив: " + numbers.toString());
        
        ArrayList<String> result = processNumbers(numbers);
        System.out.println("Измененный массив: " + result.toString());
    }

    public static ArrayList<String> processNumbers(ArrayList<Integer> numbers) {
        ArrayList<String> result = new ArrayList<>();
        
        for (int number : numbers) {
            if (number >= 10 && number < 100) {
                String numStr = String.valueOf(number);
                String swapped = numStr.charAt(1) + "" + numStr.charAt(0);
                result.add(swapped);
            } else {
                result.add(String.valueOf(number));
            }
        }
        return result;
    }
}
// обновление - код был выделен в функцию


Вопросы:
можно ли как-то проще выполнить это задание?
Какие тесты можно написать для программы?
Есть ли какие-то недочеты в моей реализации?
  • Вопрос задан
  • 148 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
GavriKos
@GavriKos
Ну как базовые два коммента (которые на самом деле не сильно повлияют на что то): не делать второй массив (зачем?) и уж тем более не делать второй массив String. Все таки я бы ожидал от функции что она или в том же массиве все переставит, или вернет новый массив интов.

Еще для тренировки я бы предложил попробовать заменить преобразование в строку математическими операциями.

UPD. Собственно функцию то вы не написали ;-) Выделите код в функцию
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы