当前位置:首页 > Java

java如何让竖变为横

2026-03-19 00:34:56Java

转换数据结构的方法

使用Java将垂直(列)数据转换为水平(行)数据,可以通过多种方式实现,具体取决于数据结构和需求。以下是几种常见场景的解决方案:

数组转换 对于二维数组,行列互换可通过嵌套循环实现:

int[][] vertical = {{1}, {2}, {3}}; // 竖排数据
int[][] horizontal = new int[vertical[0].length][vertical.length];

for (int i = 0; i < vertical.length; i++) {
    for (int j = 0; j < vertical[i].length; j++) {
        horizontal[j][i] = vertical[i][j];
    }
}

集合类转换 使用List和流式操作转换数据方向:

List<List<String>> verticalData = Arrays.asList(
    Arrays.asList("A1", "B1", "C1"),
    Arrays.asList("A2", "B2", "C2")
);

List<List<String>> horizontalData = IntStream.range(0, verticalData.get(0).size())
    .mapToObj(i -> verticalData.stream()
        .map(list -> list.get(i))
        .collect(Collectors.toList()))
    .collect(Collectors.toList());

字符串方向转换

处理字符串的竖排转横排时,需要注意换行符的处理:

java如何让竖变为横

String verticalText = "H\ne\nl\nl\no";
String horizontalText = verticalText.replace("\n", ""); // 输出"Hello"

对于多行文本的矩阵式转换:

String[] lines = {"abc", "def", "ghi"};
StringBuilder result = new StringBuilder();
for (int col = 0; col < lines[0].length(); col++) {
    for (String line : lines) {
        result.append(line.charAt(col));
    }
    result.append("\n");
}

文件数据处理

读取竖排格式的文本文件并转换为横排:

List<String> lines = Files.readAllLines(Paths.get("vertical.txt"));
try (PrintWriter writer = new PrintWriter("horizontal.txt")) {
    lines.forEach(line -> writer.print(line + " "));
}

对于CSV文件的行列转置:

java如何让竖变为横

List<List<String>> csvData = Files.lines(Paths.get("data.csv"))
    .map(line -> Arrays.asList(line.split(",")))
    .collect(Collectors.toList());

List<List<String>> transposed = new ArrayList<>();
for (int i = 0; i < csvData.get(0).size(); i++) {
    final int col = i;
    transposed.add(csvData.stream()
        .map(row -> row.get(col))
        .collect(Collectors.toList()));
}

GUI组件方向调整

在Swing中改变组件布局方向:

JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS)); // 水平排列
panel.add(new JButton("Button1"));
panel.add(new JButton("Button2"));

数据库查询结果转换

JDBC结果集的行列转换示例:

ResultSet rs = stmt.executeQuery("SELECT col1, col2 FROM table");
List<List<Object>> horizontalData = new ArrayList<>();
while (rs.next()) {
    horizontalData.add(Arrays.asList(rs.getObject(1), rs.getObject(2)));
}

二进制数据处理

字节数组的位方向转换(小端转大端):

byte[] littleEndian = {0x01, 0x00, 0x00, 0x00};
byte[] bigEndian = new byte[littleEndian.length];
for (int i = 0; i < littleEndian.length; i++) {
    bigEndian[i] = littleEndian[littleEndian.length - 1 - i];
}

标签: java
分享给朋友:

相关文章

java如何下载

java如何下载

下载Java的步骤 访问Oracle官方网站或OpenJDK项目页面下载Java开发工具包(JDK)。Oracle JDK适用于商业用途,OpenJDK为开源版本。 打开浏览器,进入Oracle J…

java如何创建数组

java如何创建数组

创建数组的基本方法 在Java中,数组是固定大小的同类型元素集合。创建数组需要声明数组类型并初始化。 声明数组 语法格式为 数据类型[] 数组名 或 数据类型 数组名[]: int[] arr1;…

java如何创建包

java如何创建包

创建Java包的步骤 在Java中,包(package)用于组织和管理类文件,避免命名冲突。以下是创建Java包的详细方法: 定义包名 在Java源文件的开头使用package关键字声明包名。包名…

java如何遍历map

java如何遍历map

遍历Map的几种方法 在Java中,遍历Map有多种方式,可以根据需求选择合适的方法。以下是常见的几种遍历方式: 使用entrySet遍历 通过entrySet()方法获取键值对的集合,可以同时访问…

java如何避免死锁

java如何避免死锁

避免死锁的方法 固定顺序获取锁 确保所有线程按照相同的顺序获取多个锁。例如,若需要获取锁A和锁B,所有线程必须先获取A再获取B,避免交叉依赖导致的死锁。这种方式破坏了“循环等待”条件。 使用锁超时机…

如何系统的学习java

如何系统的学习java

学习Java的基础知识 Java的基础知识包括语法、数据类型、变量、运算符、控制流语句等。可以通过官方文档或入门书籍如《Java核心技术》来掌握这些内容。编写简单的程序练习基础语法,例如打印“Hell…