找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 34|回复: 2

Java实现使用List存储并输出等腰三角形

[复制链接]

294

主题

15

回帖

963

积分

高级会员

积分
963
发表于 6 天前 | 显示全部楼层 |阅读模式
源代码:


import java.util.ArrayList;
import java.util.List;

public class IsoscelesTriangle {
    public static void main(String[] args) {
        int height = 5; // 三角形的高度
        
        List<String> triangleLines = new ArrayList<>();
        
        // 构建等腰三角形的每一行
        for (int i = 0; i < height; i++) {
            // 添加空格
            StringBuilder line = new StringBuilder();
            for (int j = 0; j < height - i - 1; j++) {
                line.append(" ");
            }
            
            // 添加星号
            for (int k = 0; k < 2 * i + 1; k++) {
                line.append("*");
            }
            
            triangleLines.add(line.toString());
        }
        
        // 输出等腰三角形
        System.out.println("等腰三角形:");
        for (String line : triangleLines) {
            System.out.println(line);
        }
    }
}

代码说明:
  • 首先定义三角形的高度(这里设为5)
  • 创建一个ArrayList来存储三角形的每一行
  • 使用双重循环构建每一行:

    • 外层循环控制行数
    • 第一个内层循环添加前导空格(数量随行数增加而减少)
    • 第二个内层循环添加星号(每行星号数量为2i+1)

  • 最后遍历List,输出每一行

输出结果:
等腰三角形:
    *
   ***
  *****
*******
*********

可以通过修改height变量的值来改变三角形的大小。


效果图:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

294

主题

15

回帖

963

积分

高级会员

积分
963
 楼主| 发表于 6 天前 | 显示全部楼层
类名IsoscelesTriangle
回复

使用道具 举报

294

主题

15

回帖

963

积分

高级会员

积分
963
 楼主| 发表于 6 天前 | 显示全部楼层
# Java等腰三角形代码逐行解析

下面是代码的详细解析,我会按照代码执行的顺序解释每一行的作用:

```java
import java.util.ArrayList;
import java.util.List;
```
- **导入必要的类**:这两行导入了Java集合框架中的ArrayList和List接口,用于存储和管理三角形的每一行字符串。

```java
public class IsoscelesTriangle {
```
- **定义类**:声明一个名为IsoscelesTriangle的公共类。

```java
    public static void main(String[] args) {
```
- **主方法**:程序的入口点,Java程序从这里开始执行。

```java
        int height = 5; // 三角形的高度
```
- **设置高度**:定义一个整型变量height并赋值为5,表示要打印的等腰三角形的高度(行数)。

```java
        List<String> triangleLines = new ArrayList<>();
```
- **创建列表**:创建一个ArrayList对象,用于存储构成等腰三角形的每一行字符串。

```java
        // 构建等腰三角形的每一行
        for (int i = 0; i < height; i++) {
```
- **外层循环**:控制三角形的行数,i从0到height-1,共循环height次。

```java
            // 添加空格
            StringBuilder line = new StringBuilder();
```
- **创建字符串构建器**:为当前行创建一个StringBuilder对象,用于高效地构建字符串。

```java
            for (int j = 0; j < height - i - 1; j++) {
                line.append(" ");
            }
```
- **添加前导空格**:
  - 内层循环控制每行前面的空格数量
  - 空格数量 = height - i - 1
  - 随着行数增加(i增大),空格数量减少

```java
            // 添加星号
            for (int k = 0; k < 2 * i + 1; k++) {
                line.append("*");
            }
```
- **添加星号**:
  - 另一个内层循环控制每行的星号数量
  - 星号数量 = 2*i + 1
  - 第一行(i=0)1个星号,第二行3个,第三行5个,依此类推

```java
            triangleLines.add(line.toString());
```
- **将行加入列表**:将构建好的当前行字符串转换为String并添加到triangleLines列表中。

```java
        // 输出等腰三角形
        System.out.println("等腰三角形:");
```
- **打印标题**:输出一个标题,表示接下来要打印等腰三角形。

```java
        for (String line : triangleLines) {
            System.out.println(line);
        }
```
- **输出三角形**:使用增强for循环遍历triangleLines列表,逐行打印出等腰三角形。

```java
    }
}
```
- **结束主方法和类**:闭合主方法的大括号和类定义的大括号。

## 关键点总结:
1. **空格规律**:每行前面的空格数 = 总高度 - 当前行号 - 1
2. **星号规律**:每行星号数 = 2 × 当前行号 + 1
3. **数据结构**:使用List<String>存储每一行的字符串,便于管理和扩展
4. **构建方式**:使用StringBuilder高效构建每一行的字符串

这种实现方式清晰地展示了等腰三角形的构建过程,通过调整height变量可以轻松改变三角形的大小。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|泥耶论坛

GMT+8, 2025-6-3 13:34 , Processed in 0.128259 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表