Java小记-矩阵转置

对于给定的一个二维矩阵,请转置后进行输出。

输入描述

对于一个n*m的矩阵,输入有n行,每行是m个以空格分隔的数字。

输出描述

n*m矩阵的转置矩阵。输出m行,每行是n个空格分隔的数据。

java 复制代码
import java.io.*;
import java.util.*;

public class ZhuanZhi {

	public static void main(String args[]) {

		String input = "1 2 3\r\n" + "4 5 6";
		Scanner cin = new Scanner(input);
		ArrayList<ArrayList<Integer>> arr = new ArrayList<ArrayList<Integer>>();
		while (cin.hasNextLine()) {
			ArrayList<Integer> row = new ArrayList<Integer>();
			String line = cin.nextLine();
			if (line.length() > 0) {
				String[] arrLine = line.split(" ");
				for (int i = 0; i < arrLine.length; i++) {
					row.add(Integer.parseInt(arrLine[i]));
				}
				arr.add(row);
			}
		}

		new Solution().myFunc(arr);
	}
}

class Solution {
	public void myFunc(ArrayList<ArrayList<Integer>> arr) {
		if (!(arr == null || arr.isEmpty() || arr.get(0).isEmpty())) {
			ArrayList<Integer> row = new ArrayList<Integer>();
			int r = arr.size();
			int l = arr.get(0).size();
			int[][] nn = new int[l][r];
			
			for (int i = 0; i < r; i++) {
				row = arr.get(i);
				for (int j = 0; j < row.size(); j++) {
					nn[j][i] = (row.get(j));
				}
			}
			
			for (int i = 0; i < l; i++) {
				for (int j = 0; j < r; j++) {
					System.out.print(nn[i][j] + " ");
				}
				System.out.println();
			}
		}
	}
}
相关推荐
毕设源码-赖学姐6 小时前
【开题答辩全过程】以 高校评教评学系统的设计与实现为例,包含答辩的问题和答案
java·eclipse
老华带你飞6 小时前
博物馆展览门户|基于Java博物馆展览门户系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·后端
liulilittle6 小时前
FileStream C++
开发语言·c++·cocoa
路边草随风6 小时前
iceberg 基于 cosn 构建 catalog
java·大数据
It's now6 小时前
Spring Framework 7.0 原生弹性功能系统讲解
java·后端·spring
点PY6 小时前
C++ 中 std::async 和 std::future 的并发性
java·开发语言·c++
不会代码的小猴6 小时前
C++的第九天笔记
开发语言·c++·笔记
一 乐7 小时前
人事管理系统|基于Springboot+vue的企业人力资源管理系统设计与实现(源码+数据库+文档)
java·前端·javascript·数据库·vue.js·spring boot·后端
带刺的坐椅7 小时前
Solon AI 开发学习19 - 结合 Solon Flow 实现 ReAct 效果
java·ai·chatgpt·llm·openai·solon·deepseek
CoderYanger7 小时前
Java SE——12.异常(≠错误)《干货笔记》
java·开发语言