You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将数组转为控制台空格列表及按序使用g2d.drawLine绘图

我来帮你搞定这两个Java相关的问题:

问题1:把数组转为控制台空格分隔的列表

如果你有一个像[3, 5, 7, 9, ..., n]这样的数组,要在控制台输出成空格分隔的形式,有两种简单好用的方法:

  • 方法1:用Java 8+的Stream和String.join(简洁版)
    先把int数组转成字符串流,再拼接成空格分隔的字符串:
int[] nums = {3, 5, 7, 9, 11};
String output = String.join(" ", Arrays.stream(nums).mapToObj(String::valueOf).toArray(String[]::new));
System.out.println(output); // 输出:3 5 7 9 11
  • 方法2:循环拼接(兼容所有Java版本)
    手动遍历数组,用StringBuilder来拼接,避免频繁创建字符串对象:
int[] nums = {3, 5, 7, 9, 11};
StringBuilder sb = new StringBuilder();
for (int i = 0; i < nums.length; i++) {
    if (i != 0) {
        sb.append(" "); // 不是第一个元素就加空格
    }
    sb.append(nums[i]);
}
System.out.println(sb.toString()); // 输出同样的结果
问题2:按顺序使用drawLine绘制图形

从你的代码片段来看,你应该是想把收集到的整数按x1,y1,x2,y2的顺序传入g2d.drawLine(),这里分两种常见场景给你代码:

场景1:每4个整数画一条独立的线(x1,y1到x2,y2为一组)

假设你的array里已经按[x1,y1,x2,y2,x3,y3,x4,y4,...]的顺序存好了坐标,那可以按步长4遍历:

// 确保Graphics2D对象g2d已经初始化
for (int i = 0; i < array.size(); i += 4) {
    // 防止数组越界,剩下的元素不够一组就停止
    if (i + 3 >= array.size()) {
        break;
    }
    int x1 = array.get(i);
    int y1 = array.get(i + 1);
    int x2 = array.get(i + 2);
    int y2 = array.get(i + 3);
    g2d.drawLine(x1, y1, x2, y2);
}

场景2:连续画线(从(x1,y1)到(x2,y2),再到(x3,y3)...)

如果是想把坐标点依次连接起来,那可以按步长2遍历,记录上一个点的坐标:

if (array.size() >= 2) {
    int prevX = array.get(0);
    int prevY = array.get(1);
    for (int i = 2; i < array.size(); i += 2) {
        if (i + 1 >= array.size()) break;
        int currX = array.get(i);
        int currY = array.get(i + 1);
        g2d.drawLine(prevX, prevY, currX, currY);
        // 更新上一个点为当前点,准备下一条线
        prevX = currX;
        prevY = currY;
    }
}

另外,看你代码里有array和array2两个列表,如果是array存x坐标、array2存对应y坐标的话,那可以这样遍历连续点:

// 先确保两个列表长度一致,且至少有2个点
if (array.size() == array2.size() && array.size() >= 2) {
    for (int i = 0; i < array.size() - 1; i++) {
        int x1 = array.get(i);
        int y1 = array2.get(i);
        int x2 = array.get(i + 1);
        int y2 = array2.get(i + 1);
        g2d.drawLine(x1, y1, x2, y2);
    }
}

内容的提问来源于stack exchange,提问作者twyeld

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:19:53