Задать вопрос
Ответы пользователя по тегу Java
  • Как оптимизировать код на Java?

    @red-barbarian
    1,2,3,4
    4 + 4 = 8
    for(int i = 0; i < A.length; i++) {
                for(int j = i+1; j < A.length; j++) {

    передача массива так
    получаем число элементов n
    делаем int[] A = new int[n];
    вводим каждый элемент A[i] = чтение из сканера
    Ответ написан
    Комментировать
  • Что некорректного в моей записи?

    @red-barbarian
    в строке 20. там null
    конечно иногда сообщения об exception выглядят замысловато, то чаще всего там достаточно данных, что бы понять в чем проблема. читайте их.
    обычно java.lang.NullPointerException вылетает если мы читаем (или вызываем метод) поле переменной которая равна null
    пример
    chipher = null (обычно по умолчанию. если не примитив)
    chipher.l1 = ... здесь чтение chipher.l1, но chipher null и естественно поле не вычисляется
    или chipher.l1.equals(" ") если chipher.l1 == null

    следите за этим. Это самая частое исключение (на мой взгляд)
    Ответ написан
    Комментировать
  • Как организовать динамическое добавление CardView в ленту?

    @red-barbarian
    public void swapCardfeeds(List<CardFeed> cardfeedlist){
        this.cardfeedlist= cardfeedlist;
        notifyDataSetChanged();
    }

    или же в adapter
    public void addNewCardfeed(CardFeed card){
           cardfeeds.add(card)
           notifyItemInserted(cardfeeds.size()-1);
    }
    Ответ написан
  • Что значит ошибка NullPointerException: Attempt to invoke interface method 'java.lang.Object java.util.List.get(int)' on a null object reference?

    @red-barbarian
    обычная практика с viewholder
    public int getItemCount() {
            if(cardfeedlist==null) return 0;
            return cardfeedlist.size();
        }

    это позволяет налету менять cardfeedlist например так
    public void swapCardfeeds(List<CardFeed> cardfeedlist){
        this.cardfeedlist= cardfeedlist;
        notifyDataSetChanged();
    }

    конструктор по умолчанию.
    Ответ написан
  • Как разбить на несколько контролов код в javafx?

    @red-barbarian
    Разбивайте функционал. Делегируйте выполнение того то напрямую не относиться к отображение в отдельные классы.
    Прочитайте про MVP. И чистую архитектуру.
    Ответ написан
    Комментировать
  • Какой язык программирования учить для Android разработки?

    @red-barbarian
    java, а затем kotlin
    это два официальных языка. на них практически все примеры. и документация от гугл.
    java без него нет андроида)
    kotlin - почеловечнее язык. испоьльзует библиотеки(классы) java b его машину. много сахара для удобства и проч. но изучать лучше после java/
    ну еще можно c++ для особых случаев.
    Ответ написан
    Комментировать
  • Как подогнать размер ImageView под размер картинки в ней?

    @red-barbarian
    doc
    <ImageView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:src="@mipmap/ic_launcher"
             />

    match_parent (fill_parent) – означает, что элемент займет всю доступную ему в родительском элементе ширину/высоту.
    wrap_content – ширина/высота элемента будет определяться его содержимым
    Ответ написан
  • В чём основная концепция использования RxJava?

    @red-barbarian
    RxJava - это библиотека для реализации реактивного стиля в java
    реактивный стиль вещь похожая на более известный функциональный стиль программирования.
    выражается он в следующем
    есть поток данных, мы применяем к нему некие преобразования и получаем новый поток.
    например
    (поток запросов в сеть в виде адресов страниц)-> операторЗапросаВСеть -> ОператорПарсинга-> ОператорФормированияДатаОбъектов ->(отображение на экране)
    Популярность в андроиде, думаю, приобрел за счет простоты работы с многопоточностью. По крайней мере первые примеры применения в андроиде rx обычно про это.)
    вообще, это немного другой способ мышления. отличный от процедурного и ооп.
    есть источник, есть получатель и много преобразований.
    источник это observable, получатель это subscriber/observer . преобразования это разного рода операторы или их цепочки.
    В этом случае мы понимаем приложение как нити потоков данных. такая схема бывает проще чем схема из объектов. иногда.
    конечно, мы можем применять и гибриды из этих парадигм.
    вообще, это стоит попробовать. возможно она очень вам близка по стилю вашего мышления.
    Ответ написан
  • Где можно практиковаться в программирование на С++ и Java?

    @red-barbarian
    -возьмите свои старые тексты и разберитесь в них. как бы сейчас переписали. все ли понятно. как написать что бы все было понятно с первого взгляда. перепишите их.
    -возьмите текст библиотеки которую применяете. изучите часть. перепишите аналог.
    - читайте тексты плохие и хорошие. что хотелось бы изменить? что понравилось.
    - напишите простую sql базу
    - напишите консольную игру квест.
    - изучите tdd, solid
    - проанализируйте свои тексты, попробуйте выделить части которые можно переиспользовать. перепишите их.

    !тренируйте чтение больше чем писание)
    Ответ написан
    Комментировать
  • Как найти все анаграммы в слове?

    @red-barbarian
    Это просто перестановки.

    rotate сдвигает циклично n последних элементов.
    например. если n = size, то 0 элемент станет последним, 1->0, 2->1 итд.
    если n=size-m, size-m-> последним, size-m+1->size-m, ...
    понятно, что при n = 1 ничего не делается.
    doAnagram.
    при doAnagram(1) - возврат из рекурсии, так как ничего не делает.

    при doAnagram(n) - мы циклично сдвигаем получая n случаев arr - каждый начинается с новой буквы arr[i] , i =0..n-1
    анаграммы для этих случаев будут arr[i] + doAnagram(n-1)
    Ответ написан
    Комментировать
  • Как отлавливать выход человека из приложения?

    @red-barbarian
    строго говоря говоря в андроиде не выходят из приложения. приложение прибивает система в зависимости от приоритета. начиная от пустых, затем те которые скрыты , те которые с сервисами и т.д.
    пустые это те у которых уже нет открытых активити, но приложения еще висят.
    т.е. при закрытии всех активити не факт что приложение закроется. и при сокрытии активити не факт, что ее не прибьют что бы освободить память без завершения.
    Возможно выход сделать кнопку "exit" для пользователя на которую повесить обработчик и закрытие активити.
    Ответ написан
    Комментировать
  • Как делать GUI в Java?

    @red-barbarian
    не привычный. но не удобный. описание формы отдельно, логики отдельно, css стилей отдельно приносит выгоду, когда нужно менять программу много-много раз. Тогда понимаешь насколько удобно разделение этих вещей. Такое разделение дает гибкость.
    Ответ написан
    2 комментария
  • Как заполнить TableView в JavaFx?

    @red-barbarian
    Я это делал через Pseudo class.
    Цвета описывал в css
    немного больше кода чем устанавливать цвета в программе, но зато гибкость.
    пример например https://rterp.wordpress.com/2015/04/11/atlas-trade...
    Ответ написан
  • Java ,как составить план обучения и с чего начать код?

    @red-barbarian
    Скачать или смотреть на зомботюбе курсы Головача. Они покроют большую часть плана. Он хорошо объяснял. Мне понравилось.
    Практика. Не только большие проекты.
    Предлагаю такую аналогию.
    Большие проекты развивают кругозор.
    Маленькие задачи тренируют мастерство.
    Это как отработка удара. Нужно выполнить несколько раз одно и тоже, что бы делать это хорошо и на автомате.
    Решать одни и те же маленькие задачи очень полезно. Как поддержание себя в форме.
    Такие банальные советы.
    Ответ написан
    Комментировать
  • Можно ли сказать, что Java и Python имеют одни и те же возможности?

    @red-barbarian
    Все топовые языки имеют примерно одинаковые возможности (с нужными библиотеками)
    На то что нет неоспоримого лидера среди них, говорит о том что кроме возможностей есть особенности. Всегда полезно начинать с понимание особенностей языков.
    :-)
    Ответ написан
    Комментировать
  • Как найти все варианты сложения числа 610 на java?

    @red-barbarian
    решение в лоб
    6*a+5*b+4*c+3*d+2*e +++ остальные единицы (h)
    пробегаем по циклам a, b, c, d, e пока сумма меньше или равно числу.
    во время циклов вычисляем число h и печатаем ответ.
    Ответ написан
    Комментировать
  • Платные онлайн курсы по java JAVA?

    @red-barbarian
    Проблема в изучении не в том, что бы найти хорошее изложение в видео или в книге. Проблема найти хорошего преподавателя который будет заниматься вычиткой ваших текстов. делать ревью.
    Научиться писать не сложно, это можно легко сделать и самостоятельно. Выработать хороший стиль, ясный и выразительный как на уровне названия переменных, так и структуры всей программы, намного сложнее. Здесь нужны живые собеседники и критики.
    Прискорбно, что многие курсы которые афишировали себя как курсы с ревью теряли качество после наплыва клиентов. Отзывы тому подтверждение. (естественно на независимых сайтах.)
    Жаль, но не могу посоветовать именно такие курсы, но хотя бы обозначил направление в котором искать.
    Еще параллельно советую читать книги что-нибудь по теме чистого кода, рефакторинга. Привычку к чистому коду нужно вырабатывать сразу, иначе будет дискомфорт в переучивании.
    Когда программы станут более-менее сложнее, можно обратить внимание на TDD.
    Ответ получился не конкретно по теме, но надеюсь будет полезен.Удачи.
    Ответ написан
    Комментировать