Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 19.01.2017
Сообщений: 3

Удалить экземпляр класса в массиве

22.05.2018, 13:45. Показов 3221. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в клсассе Group нужен метод удаления студента из группы по номеру зачетной книжки, как правильно его организовать?уже всю голову сломал, ничего не получается.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package university;
 
public class Main {
    public static void main(String[] args) {
        Student[] s = {new Student("Nik","Olis", "123132"),
                new Student("And","Isa", "456456"),
                new Student("San","hac","321321")};
 
        Group gr1 = new Group(s);
 
        System.out.println(gr1.getStudentByNumCard("321321"));
        System.out.println(gr1.getStudents());
    }
}
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
package university;
 
import java.util.ArrayList;
 
public class Student{
    private String firstName, secondName, addDate, studCard;
 
    public Student(String fName, String sName, String sCard) {
        firstName = fName;
        secondName = sName;
        studCard = sCard;
    }
 
    public Student(String fName, String sName) {
        firstName = fName;
        secondName = sName;
        studCard = "0";
    }
 
 
 
    void setStudCard(String SCard){studCard = SCard;}
 
    void setFirstName(String fName){firstName = fName;}
 
    void setSecondName(String sName){secondName = sName;}
 
    void setAddDate(String aDate){addDate = aDate;}
 
 
    String getFirstName(){return firstName;}
 
    String getSecondName(){return secondName;}
 
    String getAddDate(){return addDate;}
 
    String getStudCard(){return studCard;}
 
    ArrayList getStudent(){
        ArrayList student = new ArrayList();
        student.add(studCard);
        student.add(firstName);
        student.add(secondName);
        student.add(addDate);
        return student;
    }
 
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package university;
 
 
import java.util.ArrayList;
 
public class Group {
    private String numGroup;
    private Student[] students;
 
    //конструктор может принимать номер группы (в этом случае количество студентов = 0)
    public Group(String numGroup){
        this.numGroup = numGroup;
        this.students = null;
    }
 
    //конструктор может принимать номер группы,
    // количество студентов (массив студентов только инициируется, но элементы его - пустые);
    public Group(String numGroup, int student_count){
        this.numGroup = numGroup;
        this.students = new Student[student_count];
    }
 
    //конструктор может принимать массив студентов;
    public Group(Student[] students){
        this.students = students;
    }
 
    //метод получения номера группы;
    public String getNumGroup() {
        return numGroup;
    }
 
    //метод изменения номера группы;
    public void setNumGroup(String numGroup) {
        this.numGroup = numGroup;
    }
 
    //метод, возвращающий общее число студентов группы;
    public int getCountStudents(){
        return students.length;
    }
 
    //метод, возвращающий ссылку на студента по номеру зачетной книжки;
    public Student getStudentByNumCard(String numCard){
        Student stud = null;
        for(int i = 0; i < students.length; i++){
            if (students[i].getStudCard().equals(numCard)) {
                stud = students[i];
            }
        }
        return stud;
    }
 
    //метод удаления студента (принимает в качестве входного параметра номер зачетной книжки студента, которого нужно удалить, удаляет
    //соответствующий этим данным элемент из массива студентов);
    public Student[] setDelStudent(String cardNum){
 
        for(int i = 0; i < students.length; i++){
            //ArrayList<Student> students;
            if (!cardNum.equals(students[i])){
                students.remove(students[i]);
            }
            else {
                //newStudents += students[i];
                continue;
            }
        }
    }
 
    //метод, возвращающий массив студентов;
    public ArrayList getStudents() {
        ArrayList stud = new ArrayList();
        for(int i = 0; i < students.length; i++)
            stud.add(students[i].getStudent());
        return stud;
    }
 
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.05.2018, 13:45
Ответы с готовыми решениями:

Создать экземпляр одного класса в Main, и передать его в экземпляр другого класса
Добрый день. Подскажите пожалуйста. есть несколько классов-файлов в одном пакете. class one class two class main... Нужно...

Как не потерять экземпляр класса в массиве?
Всем привет! Есть вопрос по С#. У меня имеется список List экземпляров класса. Класс имеет кучу полей и методов. На форме имеется Label...

Удалить записанный экземпляр класса из двоичного файла
Задача - удалить записанный экземпляр класса из дв. файла. (В моём решении, удаленный экземпляр просто затирается последним) for...

6
19 / 19 / 1
Регистрация: 12.03.2018
Сообщений: 252
22.05.2018, 14:25
Ты не сможешь удалить студента из массива. Только обнулить его.
Рекомендую использовать ArrayList<Student>, тогда ты сможешь удалять элементы.
Будет так
Java
1
2
ArrayList<Student> s = new ArrayList<>();
s.add(new Student("Nik","Olis", "123132"));
0
 Аватар для Aviz__
2739 / 2048 / 507
Регистрация: 17.02.2014
Сообщений: 9,467
22.05.2018, 15:23
Цитата Сообщение от Artyr2 Посмотреть сообщение
обнулить его
т.е. присвоить null, а при выводе всех студентов учитывать это.
0
19 / 19 / 1
Регистрация: 12.03.2018
Сообщений: 252
22.05.2018, 15:49
Цитата Сообщение от Aviz__ Посмотреть сообщение
т.е. присвоить null, а при выводе всех студентов учитывать это.
Не люблю такие решения... Чем проще, тем лучше.
0
 Аватар для Aviz__
2739 / 2048 / 507
Регистрация: 17.02.2014
Сообщений: 9,467
22.05.2018, 18:06
Цитата Сообщение от Artyr2 Посмотреть сообщение
Не люблю
так и не ты спрашивал)). может у чела препод нуб, убитый... а студент, как правило, существо исполнительное, много не думающее.
0
0 / 0 / 0
Регистрация: 19.01.2017
Сообщений: 3
22.05.2018, 22:01  [ТС]
Спасибо, переписал в ArrayList, все работает. Пытаюсь понять теперь как отсортировать этот массив, если есть какие интересные и понятные для "туго понимающих" статьи скиньте плз.
0
19 / 19 / 1
Регистрация: 12.03.2018
Сообщений: 252
22.05.2018, 22:08
Colection.sort
Но для саморазвития попробуй алгоритмы сортировок типа пузырьковой, потом что то более сложное.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.05.2018, 22:08
Помогаю со студенческими работами здесь

Сборщик мусора (как удалить экземпляр класса)
В классе Main при клике на спрайт создаётся экземпляр класса Window: var window:Window; ... ...

Создать экземпляр метода класса или доступ к методу из экземпляра класса
Всем доброго времени суток!) Уже месяца как 2 не сишарпил и подзабыл...собственно задача такая: Создать отдельный экземпляр класса для...

Как получить ссылку на текущий экземпляр класса внутри этого класса?
Как? Чтобы отрабатывал деструктор! и в нем можно было поиметь этот this ... Идея в том, что пишу оболочку под некоторую существующую...

Экземпляр класса как входные данные метода другого класса
Можно ли в качестве входных данных метода передать экземпляр метода другого класса? Если да, то как?

Как вместо ссылки на экземпляр класса передать поле класса?
Делаю свою шаблонную функцию для свойств с событиями, при обращении к таким свойствам приходится писать что то похожее на: public...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru