С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
2 / 2 / 1
Регистрация: 21.12.2015
Сообщений: 188

Generic

10.07.2018, 22:41. Показов 1282. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
не совсем понимаю,хотя прочитал о них не мало,помогите с задачей


(a): Внедрить класс Date, который может управлять годами, месяцами и днями. Пусть класс Date реализует интерфейс java.lang.Comparable. Напишите небольшую тестовую программу, которая создает объекты вашего класса Date и сохраняет их в java.util.ArrayList.


(b): Затем используйте метод Collections.sort для сортировки ArrayList.

Subtask (c): Определите следующий класс для сортировки и использования его для сортировки ArrayList (например, реализуйте алгоритм пузырька):
class Sorter <T extends Comparable <T >> {
public void sort (ArrayList <T> list) {}}

Всегда избегайте использования необработанных типов, если это возможно!

мой код

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package sample;
import java.awt.*;
import java.lang.Comparable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
 
public class Datum implements Comparable{
 
    private int jahr;
    private int monat;
    private int tag;
 
    public Datum(int jahr, int monat, int tag) {
        this.jahr = jahr;
        this.monat = monat;
        this.tag = tag;
    }
 
 
    @Override
    public int compareTo(Object o) {
        return 0;
    }
 
    public static void main(String[] args) {
       Datum datum = new Datum(2018,12,5);
       Datum datum1 = new Datum(2017,10,7);
        Datum datum2 = new Datum(2017,8,5);
       List list = new ArrayList();
       list.add(datum);
       list.add(datum1);
       Collections.sort(list);
       System.out.println(list);
 
 
    }
}
class Sorter<T extends Comparable<T>> {
 
    public void sort(ArrayList<T> list) {
 
 
 
    }
 
 
}
во первых не понимаю,почему мой список не выводится на экран,во вторых как реализовать свой класс для сортировки
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.07.2018, 22:41
Ответы с готовыми решениями:

Generic
Допустим, First extends Second. Есть конструктор в Third классе: public Third() Например, я могу сделать так: public Third(List&lt;?...

Generic-классы
Здравствуйте! Читаю о generic-ах, в качестве примера приводится класс Optional package chapt03; public class Optional &lt;T&gt; {...

Объяснить generic
Для задания есть класс заглушка public class Tree&lt;E extends Comparable&lt;E&gt;&gt; { ... } Я несовсем понимаю дженерики здесь. В...

6
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
11.07.2018, 07:04
Лучший ответ Сообщение было отмечено Djoni как решение

Решение

все выводится, надо метод туСтринг в датум, компаре нормально прописать и т.п. Ну и сортировку то пузырьком чего не написал?

держи, как пример, туСтрингу или компареТу вовсе не обязательно быть такими, на твое усмотрение
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public class Datum implements Comparable<Datum> {
    private int jahr;
    private int monat;
    private int tag;
 
    public Datum(int jahr, int monat, int tag) {
        this.jahr = jahr;
        this.monat = monat;
        this.tag = tag;
    }
 
    @Override
    public String toString() {
        return "Datum: " + tag + "." + monat + "." + jahr;
    }
 
    public static void main(String[] args) {
        Datum datum = new Datum(2018, 12, 5);
        Datum datum1 = new Datum(2017, 10, 7);
        Datum datum2 = new Datum(2017, 8, 5);
        ArrayList<Datum> list = new ArrayList();
        list.add(datum);
        list.add(datum1);
        list.add(datum2);
        Collections.sort(list);
        System.out.println(list);
    }
 
    @Override
    public int compareTo(Datum o) {
        long summThis = jahr * 12 * 30 + monat * 30 + tag;
        long summOther = o.jahr * 12 * 30 + o.monat * 30 + o.tag;
        return summThis > summOther ? 1 : summThis == summOther ? 0 : -1;
    }
}
 
class Sorter<T extends Comparable<T>> {
 
    public void sort(ArrayList<T> list) {
        for (int j = 0; j < list.size(); j++) {
            for (int i = 0; i < list.size() - 1; i++) {
                if (list.get(i).compareTo(list.get(i + 1)) > 0) {
                    T temp = list.get(i);
                    list.set(i, list.get(i + 1));
                    list.set(i + 1, temp);
                }
            }
        }
    }
}
1
2 / 2 / 1
Регистрация: 21.12.2015
Сообщений: 188
11.07.2018, 10:25  [ТС]
Welemir1,
большое спасибо,теперь понятнее,есть пара вопросов
public String toString()
и
public int compareTo(Datum o)
должны быть всегда переписан под нужную программу?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
11.07.2018, 11:11
Djoni, туСтринг пишем всегда там где нам нужен нормальный вывод (в консоль например)
компареТу -нужен только если твой класс сравниваемый, предназначен для сравнения, это редко нужно
1
2 / 2 / 1
Регистрация: 21.12.2015
Сообщений: 188
11.07.2018, 12:10  [ТС]
еще одна задача,не пойму причем тут genericда и решить пока не получается

Словарь в смысле следующего объекта характеризуется тем, что он содержит несколько терминов, которым присвоены соответственно один или несколько переводов. Задача (a): написать словарь класса, используя следующие методы:

1. einfugen метод с двумя строковыми параметрами, а именно: термин и (возможно, дальнейший) перевод.
2. Метод getUebersetzungen, который получает строку, переданную как параметр, и как строковый массив предоставляет словарь, содержащий переводы этого термина.

Используйте классы java.util.HashMap и java.util.ArrayList для реализации внутренней структуры данных. Избегайте сырых типов!
(b): Используйте класс Woerterbuch, чтобы написать небольшую программу, в которой пользователь может сначала ввести набор терминов и переводов, а затем распечатать сохраненные переводы для ввода отдельных условий.



вот что я накалякал

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.util.HashMap;
import  java.util.ArrayList;
 
public class WorteBuch <T> {
    private String begrif;//определение
    private String uebersetz;//перевод
 
    public WorteBuch(String begrif, String uebersetz) {
        this.begrif = begrif;
        this.uebersetz = uebersetz;
    }
 
 
    public  void einfuegen(String begrif,String ubersetz){
        HashMap<String,String> map = new HashMap<>();
        map.put(begrif,ubersetz);
 
 
 
 
    }
 
    public  getUebersetzungen(String buch){// не понимаю как
 
        return;
    }
 
    public static void main(String[] args){
        WorteBuch buch = new WorteBuch("Selo","veselo");
        WorteBuch buch1 = new WorteBuch("VAsia","chudik");
        WorteBuch buch2 = new WorteBuch("Vse","Ok");
 
        ArrayList<WorteBuch> list = new ArrayList<>();
 
        buch.einfuegen("AAAA","CCCCC");//это по сути тоже самое,что и  WorteBuch buch = new WorteBuch("Selo","veselo");
 
 
 
 
 
 
 
    }
 
}
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
11.07.2018, 12:20
Djoni, один вопрос=1 тема на форуме, а то так долго можно писать
0
2 / 2 / 1
Регистрация: 21.12.2015
Сообщений: 188
11.07.2018, 12:23  [ТС]
Welemir1,
понял
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.07.2018, 12:23
Помогаю со студенческими работами здесь

Удаление (Generic)
Необходимо удалить определенный элемент из массива, но функция remove не работает: выходит так что удаляется последний элемент. ...

Работа с Generic
Создать Generic класс, в котором есть метод, который выводит описание ключа и значения. Создать методы, которые позволяют ...

Generic методы
Не могу понять принцип методов generic. Питу такой метод к примеру: public static &lt;T&gt; T getValue(T val) { return val; ...

Generic class
Доброй ночи! Изучаю Дженерики в Java, но пока никак не могу понять, как же правильно применять эти знания на практике. Есть тренировочное...

Generic Types
Что имеется вввиду, когда мы пишем Room&lt;Integer&gt; room = new Room&lt;Integer&gt;(); в следующем коде: class Room&lt;T&gt; { private T...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru