jmu-Java-02基本语法-04-动态数组

根据输入的n,打印n行乘法口诀表。
需要使用二维字符串数组存储乘法口诀表的每一项,比如存放1*1=1.
为了保证程序中使用了二维数组,需在打印完乘法口诀表后使用Arrays.deepToString打印二维数组中的内容。

提醒: 格式化输出可使用String.format或者System.out.printf

输出格式说明

  1. 每行末尾无空格。
  2. 每一项表达式之间(从第1个表达式的第1个字符算起到下一个表达式的首字符之间),共有包含7个字符。如2*1=2 2*2=4从第1个2开始到第二项``2*2=4`首字母之间,总共有7个字符(包含空格,此例中包含2个空格)。

输入样例:

2
5

输出样例:

1*1=1
2*1=2  2*2=4
[[1*1=1], [2*1=2, 2*2=4]]
1*1=1
2*1=2  2*2=4
3*1=3  3*2=6  3*3=9
4*1=4  4*2=8  4*3=12 4*4=16
5*1=5  5*2=10 5*3=15 5*4=20 5*5=25
[[1*1=1], [2*1=2, 2*2=4], [3*1=3, 3*2=6, 3*3=9], [4*1=4, 4*2=8, 4*3=12, 4*4=16], [5*1=5, 5*2=10, 5*3=15, 5*4=20, 5*5=25]]


答案

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int n = scanner.nextInt();
            String[][] arr = new String[n][n];
            for (int i = 0; i < n; i++) {
                for (int j = 0; j <= i; j++) {
                    String str = (i + 1) + "*" + (j + 1) + "=" + (i + 1) * (j + 1);
                    System.out.print(str);
                    arr[i][j] = str;
                    if (j < i){
                        int space = Math.max((7 - str.length()), 0);
                        for (int k = 0; k < space; k++) {
                            System.out.print(" ");
                        }
                    }
                }
                System.out.println();
            }
            System.out.println(Arrays.deepToString(arr).replace(", null",""));
        }
    }
}
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 动态数组是一种可以根据需要动态增加或减少大小的数组。在Java中,动态数组可以使用ArrayList类来实现。ArrayList类提供了一些方法来添加、删除、获取和修改元素。与普通数组不同的是,ArrayList可以自动调整大小,因此不需要手动管理数组大小。 ### 回答2: 在Java中,数组是存储一组同类型元素的有效数据结构。通常,当我们需要定义数组但无法确定其长度时,可以使用动态数组。与静态数组相比,动态数组可以在程序运行时动态地改变其大小。它不需要分配整个内存块,而是可以按需增加或减少其大小。Java通过ArrayList类来实现动态数组。 要使用ArrayList类,需要导入Java.util包,然后定义一个ArrayList变量。与静态数组不同,对动态数组进行元素的添加或删除不需要重新定义整个数组。因此,对于频繁变化的数据结构,动态数组是一种更为灵活和高效率的选项。 ArrayList类有许多有用的方法,例如add(),remove(),size(),get()等。使用add()方法可以将一个元素添加到动态数组的末尾。如果需要在指定位置添加元素,则可以使用add(int index, Object element)方法。remove()方法可以从数组中删除一个元素。size()方法可以返回动态数组目前的大小,而get()方法可以按照索引值返回数组中的元素。 虽然动态数组的使用便捷和高效,在使用时需要注意一些细节问题。因为动态数组内部使用了一个数组,所以频繁地添加和删除元素会导致内部数组的扩充和缩小,从而降低性能。在处理大量数据时,我们应该考虑使用其他数据结构,例如链表。 总之,动态数组Java编程中非常常用,特别是在需要不确定数组长度的情况下。熟练掌握动态数组的使用方法,可以提高代码的效率和可读性,同时也丰富了Java的数据结构知识。 ### 回答3: 动态数组,也称为可调整数组,是一种支持动态内存分配的数组类型。与静态数组不同,动态数组的大小在程序运行时可以动态调整。在Java中,动态数组可以使用数组列表(ArrayList)或Vector来实现。 ArrayList是Java中常用的动态数组类。声明和初始化一个ArrayList的方法如下: ```java ArrayList<String> list = new ArrayList<String>(); ``` 在这个示例中,ArrayList中存储的是字符串类型的元素。如果要存储其他类型的元素,只需相应地将“String”替换为相应的类型即可。 向ArrayList中添加元素的方法是“add”方法。例如,在上面的示例中,我们可以使用以下代码向ArrayList中添加元素: ```java list.add("apple"); // 添加元素"apple"到列表中 ``` 获取ArrayList中元素的方法是“get”方法。例如: ```java String element = list.get(0); // 获取列表中索引为0的元素 ``` 需要注意的是,ArrayList和Vector都是动态数组类型,它们的区别在于线程同步。Vector是线程安全的,而ArrayList非线程安全。因此,在多线程环境下使用动态数组时,建议使用Vector。 除了ArrayList和Vector之外,还有其他的动态数组实现方式,比如LinkedList、CopyOnWriteArrayList等。 总的来说,动态数组是一种非常常用的数据结构类型,它具有动态调整大小的优势,适用于需要频繁插入和删除元素的情况。在Java中,我们可以使用ArrayList或Vector来实现动态数组,并根据需要选择合适的实现方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值