Nano Hash - криптовалюты, майнинг, программирование

Прием и сортировка неограниченного пользовательского ввода

Я только начал изучать Java несколько дней назад, и это первый язык, который я пытаюсь выучить. Так что, пожалуйста, извините мое невежество.

Я пытаюсь создать класс для приема неограниченного пользовательского ввода (в виде целых чисел 5, 10, 15, 500, 10003 и т. д.). Затем прекращаю принимать ввод, когда пользователь пишет «ОК». в командную строку. Затем получите запрос на возрастание или убывание. Наконец, напечатайте список чисел в порядке возрастания или убывания, в зависимости от выбора пользователя.

Я не думал, что это будет слишком сложно кодировать. Тем не менее, я столкнулся с несколькими проблемами:

  1. Я пытаюсь использовать сканер, чтобы принять пользовательский ввод и поместить его в ArrayList.... Однако ArrayList будет принимать только один тип переменной (мне нужно поместить все целочисленные входные данные в ArrayList и отобразить результаты, когда строка " ОК" написано).

  2. Я не знаю, как напечатать ArrayList, чтобы числа отображались в одной строке в порядке возрастания или убывания.

Если бы кто-нибудь мог написать мне пример кода или указать мне правильное направление, это было бы очень признательно.


  • Я только начал кодить несколько дней назад. Я действительно просто не знаю, как это кодировать, и я хорошо учусь на примере. Я попробую еще раз, хотя. 18.10.2013

Ответы:


1

Если тип не указан, ArrayList хранит объекты как тип Object. Он может смешивать типы объектов (String, MyClass, Array и т. д. также относятся к типу Object). Int можно поместить в класс-оболочку Integer.

Нет проверки типов. В зависимости от настроек вашего компилятора/IDE вы можете получить предупреждение: Name.java использует непроверенные или небезопасные операции.

Это рискованно, поэтому, как следует из приведенного выше ответа, вероятно, лучше использовать цикл Do, пока не будет введено «ОК».

16.10.2013

2

это похоже на домашнее задание :)

Вы проверяете ввод, если он преобразуется в int, вы добавляете его в массив int, если он равен «ОК», вы выполняете обработку, иначе вы игнорируете. Обработка - это сортировка вашего массива, затем прокрутите его и выполните:

System.out.println(myArray.get(i)); // print will print inline println will print and go to next line.
16.10.2013
  • Он спрашивал не о массиве, а о ArrayList. 16.10.2013
  • не домашнее задание. Я пытаюсь выучить Java только потому, что... хотя бы это была домашняя работа! Я бы спросила у учителя. 18.10.2013

  • 3

    Вы можете использовать следующее:

    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Collections;
    import java.util.List;
    import java.util.Scanner;
    
    public class Main {
     public static void main(String[] args) {
    
        System.out.println("Please enter integer numbers , write 'OK' to exit");
    
    List<Integer>inputs=new ArrayList<Integer>();
    
    Scanner scanner=new Scanner(System.in);
    String input=scanner.next();
    while(!"OK".equalsIgnoreCase(input)){
        inputs.add(Integer.parseInt(input));
        input=scanner.next();
    }
    if(inputs.isEmpty())
        return;
    System.out.println("How would you like to sort 'ASC' or 'DSC'");
    input=scanner.next();
    if(input.equalsIgnoreCase("ASC")){
        Collections.sort(inputs);
    }
    else if(input.equalsIgnoreCase("DSC")){
        Collections.sort(inputs);
        Collections.reverse(inputs);
    }
    System.out.println(inputs);
    }
    }
    
    06.02.2016
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..