Привет, я начинаю java У меня быстрый вопрос
Так сказать, у меня есть матрица
1 0 1
0 2 0
3 2 1
Есть ли встроенный метод в Java, который будет выводить число 3 (max) вместе с его координатами?
Если нет, то я думаю, что Matlab, возможно, испортил мне хехе
благодаря
Это зависит от реализации "матрицы". Что касается моего опыта работы с Java (и краткий поиск Google), то нет стандартного матричного класса, поэтому я предполагаю, что вы либо используете многомерный массив (int[][] matrix
), либо некоторую стороннюю библиотеку.
В первом случае Java действительно предоставляет средства для поиска максимальной коллекции. Я предполагаю, что это можно каким-то образом применить к многомерному массиву; однако он включает преобразование массива в коллекцию, которая, как указывает это сообщение SO, очень неэффективна, если все, что вам нужно, это min/max. Вместо этого вы должны сами написать функцию min/max. Либо это будет тривиально для вас, и вам потребуются небольшие усилия, или вы узнаете что-то от этого.
Если вы используете стороннюю библиотеку, такую как JAMA, то она полностью зависит от реализации этой библиотеки, и я рекомендую вам ознакомиться с ее документацией или источником.
Вот некоторый код, который сделает max.
public FunRun()
{
int[][] array = { { 1, 1, 2 }, { 1, 0, 3 }, { 0, 2, 1 } };
System.out.println(max(array, 3, 3));
}
Integer max(int[][] array, int rows, int cols)
{
Integer result = null;
for (int row = 0; row < rows; row++)
{
for (int col = 0; col < cols; col++)
{
if (result == null || result < array[row][col])
{
result = array[row][col];
}
}
}
return result;
}
commons-math