如何设置Java数组长度

如何设置Java数组长度,java,arrays,Java,Arrays,我有点困惑 我正在写一个程序,我需要一个 array保存值,但值是用户定义的,我想打印数组,但它会打印 数组值: 一, 0 0 0 0 0 因为我定义了数组的长度。那么,如何删除额外的0并只打印用户定义的值呢?您可以使用动态数组,该数组由java实现为 另一种方法(在大多数情况下,更糟糕的方法)是找出数组的“期望”长度,并通过使用该方法创建新数组来仅获取其中的一部分 似乎您正在使用一种自定义打印方法,在达到某个索引后可以停止该方法 作为旁注,您可以通过将数组转换为String,轻松打印数组,并

我有点困惑

我正在写一个程序,我需要一个
array
保存值,但值是用户定义的,我想打印数组,但它会打印 数组值:

一, 0 0 0 0 0


因为我定义了数组的长度。那么,如何删除额外的
0
并只打印用户定义的值呢?

您可以使用动态数组,该数组由java实现为

另一种方法(在大多数情况下,更糟糕的方法)是找出数组的“期望”长度,并通过使用该方法创建新数组来仅获取其中的一部分

似乎您正在使用一种自定义打印方法,在达到某个索引后可以停止该方法



作为旁注,您可以通过将数组转换为
String
,轻松打印数组,并且打印此字符串可以使用动态数组,该数组由java实现为

另一种方法(在大多数情况下,更糟糕的方法)是找出数组的“期望”长度,并通过使用该方法创建新数组来仅获取其中的一部分

似乎您正在使用一种自定义打印方法,在达到某个索引后可以停止该方法



作为旁注,通过将数组转换为
String
with-并打印此字符串,可以轻松打印数组。有两种解决方案

  • 您可以使用java.util.ArrayList来存储条目。ArrayList可以增长和收缩到您需要的任何大小
  • 您可以首先创建一个比您认为使用过的更大的int[],然后定义
    int arrLength
    ,并使用它来尝试数组大小

  • 有两种解决方案

  • 您可以使用java.util.ArrayList来存储条目。ArrayList可以增长和收缩到您需要的任何大小
  • 您可以首先创建一个比您认为使用过的更大的int[],然后定义
    int arrLength
    ,并使用它来尝试数组大小

  • 如果您想要一个动态大小的集合,我建议您使用(like)

    这是一个简单的工作原理示例:

    List<Integer> list = new ArrayList<Integer>();
    
    list.add(1);
    list.add(2);
    list.add(3);
    
    System.out.println("My List:" + list);
    
    您必须导入
    java.util.ArrayList
    java.util.List
    才能使用它们

    您还可以像这样迭代
    列表

    for(int val : list) {
        System.out.println("value: " +val);
    }
    
    输出:

    My List:[1, 2, 3]
    
    value: 1
    value: 2
    value: 3
    
    value 0: 1
    value 1: 2
    value 2: 3
    
    或使用索引进行迭代:

    for(int i=0; i<list.size(); i++){
        System.out.println("value " + i + ": " + list.get(i));
    }
    
    (请注意,索引是基于0的;即,它们从0开始,而不是从1开始)


    有关更多信息,请阅读上面链接的两个Javadocs,分别是
    列表
    阵列列表
    ,如果您想要动态大小的集合,我建议使用(like)

    这是一个简单的工作原理示例:

    List<Integer> list = new ArrayList<Integer>();
    
    list.add(1);
    list.add(2);
    list.add(3);
    
    System.out.println("My List:" + list);
    
    您必须导入
    java.util.ArrayList
    java.util.List
    才能使用它们

    您还可以像这样迭代
    列表

    for(int val : list) {
        System.out.println("value: " +val);
    }
    
    输出:

    My List:[1, 2, 3]
    
    value: 1
    value: 2
    value: 3
    
    value 0: 1
    value 1: 2
    value 2: 3
    
    或使用索引进行迭代:

    for(int i=0; i<list.size(); i++){
        System.out.println("value " + i + ": " + list.get(i));
    }
    
    (请注意,索引是基于0的;即,它们从0开始,而不是从1开始)


    有关更多信息,请阅读上面链接的两个Javadoc,分别是
    列表
    阵列列表
    ,简单的方法如下:

    List list = new ArrayList(5);
    

    简单的方法如下:

    List list = new ArrayList(5);
    

    请发布您的代码,以便我们更好地提供帮助。无论如何,您可以设置一个计数器来存储用户输入的数量,并将其用作打印循环的上限。请发布您的代码,以便我们提供更好的帮助。无论如何,您可以设置一个计数器来存储用户输入的数量,并将其用作打印循环的上限。第三种方法是定义一个大于所需的int[],并使用第一项来存储长度。这不是一种“普通”技术,但在许多情况下它是最有效的,尤其是当代码需要为项创建空间,然后按随机顺序填充时,其他类型都无法很好地适应。第三种方法是定义大于所需的int[],并使用第一项存储长度。这不是一种“正常”的技术,但在许多情况下,它是最有效的,尤其是当代码需要为项创建空间,然后按随机顺序填充项时,其他类型都无法很好地适应。