【问题标题】:How to find size/length of an array without using library functions/variables [closed]如何在不使用库函数/变量的情况下查找数组的大小/长度[关闭]
【发布时间】:2014-09-03 01:05:43
【问题描述】:
int arr[] = new int[10];
int size=0;
while(???)
{
    i++;
}

System.out.println(size);  // Should print 10

如何在不使用 arr.length 或其他库函数的情况下遍历数组?

【问题讨论】:

  • “不使用 arr.lenth...” - 为什么?
  • 这就像问“你如何在不使用休息时间的情况下停下汽车” - 墙是好的,但你不会喜欢结果......
  • 或其他库函数。你确定这是针对 Java 的吗?
  • 为什么人们想要重新发明轮子。它通常会导致方轮显然不适合滚动...

标签: java arrays size


【解决方案1】:
int arr[] = 新的 int[100]; 整数总和 = 0; 诠释 i = 0; 而(真){ 尝试 { 总和 += arr[i]; } 捕捉(ArrayIndexOutOfBoundsException e){ 休息; } 我++; } System.out.println("数组大小为 " + i);

我假设数组是整数,但想法是一样的。

【讨论】:

  • 所以...基本上我们使用 ArrayOutOfBoundsException 来中断并计算。有什么方法可以在不使用此异常的情况下计算大小?
  • 这不是对你的挖苦,而是给其他阅读本文但不了解的人的便条,Why not use exceptions as regular flow of control?Dont Use Exceptions For Flow ControlAre exceptions as control flow considered a serious antipattern? If so, Why?...我可以继续...
  • 是的 .. 很糟糕,但是可以工作 .. 总和 += arr[i] 是因为否则编译器可能会删除“arr[i]”语句,因为它没有用于任何事情.
  • @MadProgrammer 是的,使用异常作为流控制是不好的。然而,很明显来自一些家庭作业或琐事的问题指向了这个方向。显然是一个糟糕的家庭作业或琐事。
  • @Navchetan 在 Java 中,不,这就是为什么有 .length 属性的原因。唯一其他可能的解决方案是在数组中使用某种终止符,它允许您确定您已经到达“有效”条目的末尾,但这并不是衡量数组“可能”有多大是,而是衡量它包含的“有效”元素的数量
【解决方案2】:

在后台你会得到一个 .length(除非你使用一个奇怪的编译器),但因为这个问题有点奇怪......

int[] array = new int[100];
int size = 0;

for(int i : array){
    ++size;
}

System.out.println("Size: " + size);

还是没看懂

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    相关资源
    最近更新 更多