С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/47: Рейтинг темы: голосов - 47, средняя оценка - 4.98
 Аватар для oobarbazanoo
7 / 30 / 9
Регистрация: 13.05.2015
Сообщений: 1,835

Как поменять местами элементы массива объектов?

16.05.2016, 14:12. Показов 9933. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как поменять местами элементы массива объектов?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.05.2016, 14:12
Ответы с готовыми решениями:

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

Поменять местами элементы массива
В двумерном массиве, состоящем из целочисленных элементов, поменять местами (обмен проводить только в том случае, если оба указанных...

Поменять местами элементы массива
Приведите фрагмент кода, меняющий местами i-ый и j-ый элементы массива.

6
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
16.05.2016, 14:22
Лучший ответ Сообщение было отмечено oobarbazanoo как решение

Решение

oobarbazanoo,
Java
1
2
3
4
5
        Object[] massiv = new Object[12];
        //хотим поменять местами второй и девятый элементы
        Object temp = massiv[1];
        massiv[1] = massiv[8];
        massiv[8] = temp;
1
84
 Аватар для 84
28 / 33 / 12
Регистрация: 11.04.2016
Сообщений: 132
16.05.2016, 14:23
oobarbazanoo, Какой вопрос, такой ответ
Java
1
2
3
4
5
6
7
8
9
10
11
12
import java.util.Arrays;
 
public class Massive {
    public static void main(String[] args) {
        String[] arrObj = {new String("123"), new String("321")};
        System.out.println(Arrays.toString(arrObj));
        String tmp = arrObj[0];
        arrObj[0]=arrObj[1];
        arrObj[1]=tmp;
        System.out.println(Arrays.toString(arrObj));
        }
    }
1
 Аватар для oobarbazanoo
7 / 30 / 9
Регистрация: 13.05.2015
Сообщений: 1,835
16.05.2016, 16:29  [ТС]
А в чём тут может быть ошибка?
Java
1
2
3
4
5
6
7
8
9
10
11
public void deleteLastElement()
    {
        Faculty[] fa = new Faculty[faculties.length - 1];
        int i = 0;
        for(Faculty f : fa)
        {
            f = new Faculty("");
            f = faculties[i++];
        }
        faculties = fa;
    }
Добавлено через 13 минут
То есть, если дан массив объектов, то как из него удалить последний элемент и сделать размер массива на один меньше?
0
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
16.05.2016, 16:51
oobarbazanoo,
Цитата Сообщение от oobarbazanoo Посмотреть сообщение
в чём тут может быть ошибка
- это в принципе одна большая ошибка, но в основном у Вас не совпадают типы данных: сначала Вы пишете
Java
1
Faculty f : fa
то есть переменная f у Вас типа Faculty, а через строку - она уже становится другим типом
Java
1
f = faculties[i++];
Java имеет строгую типизацию данных и в ней нельзя одной и той же переменной присваивать различные типы.
Удалить последний элемент можно очень просто:
Java
1
2
3
        String[] massive = {"a", "b", "c", "d"};
        String[] mass = new String[3];
        System.arraycopy(massive, 0, mass, 0, 3);
А вообще на форуме принято правило: одна тема - один вопрос. И лучше его придерживаться: может кого-то тоже заинтересует возможность удаления последнего элемента, а из заголовка темы он даже и предположить не сможет, что ниже в теме этот вопрос уже обсуждался...
1
 Аватар для oobarbazanoo
7 / 30 / 9
Регистрация: 13.05.2015
Сообщений: 1,835
17.05.2016, 18:18  [ТС]
faculty[i] - элемент массива типа Faculty. Так что там проблемы нет.
0
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
17.05.2016, 19:39
Лучший ответ Сообщение было отмечено oobarbazanoo как решение

Решение

oobarbazanoo, ну я же Вам дал рабочий код по удалению последнего элемента из массива. Ok! Давайте с Вашими переменными, может так будет проще... Собственно то, что производит манипуляции с массивами:
Java
1
2
3
4
        Faculty[] faculties = new Faculty[10]; //исходный массив
        int newSize = faculties.length - 1; //на сколько хотим его укоротить на один, на два или ещё как
        Faculty[] fa = new Faculty[newSize]; // массив-приёмник, куда станем копировать
        System.arraycopy(faculties, 0, fa, 0, newSize); //сама процедура копирования, можете попробовать менять цифры - будет понятно какая за что отвечает.
Ну и рабоче-тренировочный пример (можно запустить, посмотреть что выйдет):
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
class Main {
    public static void main(String[] args) {
 
        Faculty[] faculties = new Faculty[30];
        int newSize = faculties.length - 1;
        faculties[28] = new Faculty("biology");
        faculties[29] = new Faculty("chimestry");
        Faculty[] fa = new Faculty[newSize];
        System.arraycopy(faculties, 0, fa, 0, newSize);
        System.out.println(Arrays.toString(faculties));
        System.out.println(Arrays.toString(fa));
    }
}
 
class Faculty {
    String name;
 
    Faculty(String name) {
        this.name = name;
    }
 
    public String toString() {
        return name;
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.05.2016, 19:39
Помогаю со студенческими работами здесь

Поменять местами элементы массива по ключу
Доброго времени суток! Задача состоит в следующем: дан массив символов, необходимо поменять их местами, заданными ключом-строкой. ...

Поменять местами первый и последний элементы массива
Задан массив, например, а = {5,13,21,37,43,55,62,78,84,93}. Поменять в нем местами первый и последний элементы. (программа должна работать...

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

Попарно поменять элементы местами
Помогите Пожалуйста написать программу: Дан массив a вещественных чисел. Попарно поменять местами соседние элементы: a должен поменяться...

Поменять местами элементы (квадратная матрица)
Не удается поменять элементы матрицы под и над главной диагональю местами при помощи циклов. И ведь понимаю, как делать и формулы понятны....


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru