С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 22.02.2014
Сообщений: 12
1

Из массива объектов в массив примитивов

08.06.2019, 23:07. Показов 2484. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, необходимо решить следующую задачу:

У меня имеется простой класс Point с двумя параметрами — double x и double y;
Есть ли быстрый способ (именно быстрый, мне нужен именно выигрыш в скорости), чтобы перевести массив типа Point[] в массив вида [[x1,y1],[x2,y2],..[xN,yN]]?

Я думаю это возможно реализовать стримами, но пока не уверен как именно
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.06.2019, 23:07
Ответы с готовыми решениями:

Преобразование массива примитивов в массив оболочек типа и наоборот
Знаю, что с массивами автоматическая упвковка и распаковка не работает. Существует ли метод для...

Как собрать из массива ключей и массива объектов - массив объектов?
Как собрать из массива ключей и массива обьектов - массив объектов? // Массив ключей ; //...

При инициализации массива объектов в одном методе, этот массив объектов не видно в других методах
static public void Load() { BaseObject objs = new BaseObject; //Этот массив!...

Jasmine. Имеется массив из N объектов , необходимо проверить, что какие-то M объектов входят в этот массив
Имеется массив из N объектов , необходимо проверить, что какие-то M объектов входят в этот массив....

7
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
08.06.2019, 23:43 2
Лучший ответ Сообщение было отмечено TseL как решение

Решение

Ну, можно так
Java
1
2
        double[][] arr = new double[5][2];
        Arrays.stream(points).map(p -> new double[] { p.getX(), p.getY() }).collect(Collectors.toList()).toArray(arr);
Добавлено через 40 секунд
points - эт массив точек (Point[]), еси шо
0
345 / 141 / 51
Регистрация: 02.12.2015
Сообщений: 333
08.06.2019, 23:45 3
[[x1,y1],[x2,y2],..[xN,yN]] - а вот эти скобочки вложенные что обозначают? это вложенные массивы или просто для визуального выделения пар элементов в одномерном массиве?
0
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
08.06.2019, 23:50 4
и можно сначала собрать всё в List, потом инициализировать массив
Java
1
arr = new double[list.size()][2];
и ток потом у List вызвать метод toArray

Добавлено через 1 минуту
Lumber, просто двумерные массивы так выводятся на печать. Можете считать, что скобок нет

Добавлено через 3 минуты
двумерный массив эт тип массив, состоящий из массивов, поэтому при выводе так выделяется каждый ряд, т.е. чтоб обратиться к Х и У первой точки, например, надо получить значения arr[0][0] и arr[0][1] и т.д.
0
345 / 141 / 51
Регистрация: 02.12.2015
Сообщений: 333
08.06.2019, 23:53 5
Цитата Сообщение от Gungala Посмотреть сообщение
просто двумерные массивы так выводятся на печать. Можете считать, что скобок нет
я не уверен что автору темы нужен двумерный массив, он пишет нужен выигрыш по скорости, а массив массивов не даст никакого выигрыша по сравнению с массивом Point (это практически тоже самое в памяти). Вот если всё в одномерный double массив запихнуть...

Но может ему нужна только быстрая конвертация массива, а не быстрая работа с получившимися данными.
0
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
08.06.2019, 23:57 6

Не по теме:

Lumber, балин, я твоё сообщение увидел и подумал, что ты ТС и тип не понимаешь что эт за скобки, поэтому начал всю эту хрень объяснять. Ох, надо идти спать



Я думаю, что всё-таки имелся ввиду двумерный массив. Он же не уточнил для каких целей ему эт надо. Возможно, в какой-то ситуации так получится... ам... выиграть скорость
0
Эксперт Java
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
09.06.2019, 00:22 7
О каком выйгрыше в скорости тут может идти речь при элементарных операциях и одному проходу по исходным данным?
0
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
09.06.2019, 00:24 8
KEKCoGEN, для ТС выигрыш в скорости эт когда кода мало, я думаю
0
09.06.2019, 00:24
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.06.2019, 00:24
Помогаю со студенческими работами здесь

Массив объектов и методы элементов массива
Добрый день, уважаемые форумчане... Создаю массив object, передаю элементам разные объекты, но...

Отрисовать динамический массив примитивов
На основе кода DirectX SDK Direct3D 11. 1.Подскажите, как правильно отрисовывать динамический...

Как из массива строк перенести в массив объектов?
Добрый день! Задача звучит так: Есть заполненный массив строк String . Есть класс с двумя...

Помещение и обращение массива объектов в другой массив
Реализовать классы "автомобиль" и "пассажиры". Существуют автомобили в которых могут находиться...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru