【问题标题】:Android - Clean char array quickly and effectivelyAndroid - 快速有效地清理字符数组
【发布时间】:2011-10-25 01:52:30
【问题描述】:

是否可以在 Java (Android) 中快速有效地清理 char 数组?在处理上创建另一个循环似乎过于繁重,无法成为优化的解决方案,不是吗?

这很奇怪,但是如果不订阅付费网站,就不可能在互联网上找到这样的 Java 解决方案..

感谢您的关注

【问题讨论】:

  • “清理 char 数组是什么意思”?将其所有值设置为 0?如果是这样,循环是唯一的方法。
  • "cleaning" 意味着重新初始化这个数组的每个值,就像它创建时一样。我认为,在 java 中,char 数组的每个值在 java 中都被初始化为 '\0'。但是每帧循环 +20000 个值似乎是一个未优化的解决方案,这就是为什么我想知道是否存在更好的解决方案

标签: java android char arrays


【解决方案1】:

你可以使用:

Arrays.fill(yourArray, ' ');// or any other char instead of ' '

Arrays 类属于java.util 包。它使用泛型,因此您可以填充任何类型的数组。

【讨论】:

  • 请记住,fill 方法将遍历您的数组。这只是一个捷径……但不会解决您的性能问题。
  • 我想是的。但是,如果存在这种方式的任何解决方案,至少具有简化代码的优势
【解决方案2】:

为什么首先需要清除一个 char 数组?

大多数希望 char 数组将一些数据放入其中的函数(IO 读取等)返回放入的数据的长度,因此您可以忽略 char 数组中的其余数据。

【讨论】:

  • 是的,我知道,但是在使用 char 数组将数据写入文件时遇到了一些麻烦。这就是为什么我想确保我的麻烦不是来自这个数组。我知道重写数据就足够了,但我想确保问题不是来自那里。并且可以在互联网上找到有关此主题 java 的任何解决方案
  • 你给我解决方案彼得,谢谢。不管得到的数据长度如何,我都写了我的 char 数组。它对用这个数组制作的文件造成了一些麻烦。不,它有效,再次感谢
【解决方案3】:

使用 布尔值 表示您的数组无效。

【讨论】:

  • 我不明白我为什么要这样做?如何知道我的数组是否有效?数组包含字符,只有它们的使用可能正确与否
  • 你怎么知道什么时候清空数组?您的数组已被清除或未清除 - 使用布尔值来表示这一点(而不是实际“清除”)。
  • 这个数组每帧都被数据填充,所以它的清理确保下一个数据插入不会被前一帧的剩余位破坏
  • 我不知道..但是由于这个数组的位将被覆盖数十万次,我更喜欢清理它,因为这个数组传输的内容会产生麻烦
  • 在 Java 中你不必担心这个。
【解决方案4】:

我想知道是预先确定一个数组的大小,由各种数据大小来完成,还是让它的大小根据接收来演变是最好的方法?这是为了实现最快的处理。 谢谢

【讨论】:

    【解决方案5】:

    我认为这个问题的正确答案是将 char[] 的每个字符设置为空字符:

    Arrays.fill(buffer, (char)0);
    

    或者

    Arrays.fill(buffer, '\0');
    

    执行Arrays.fill(buffer, '0'); 将使用字符“0”而不是空字符填充所有char[]。

    【讨论】:

      猜你喜欢
      • 2019-07-06
      • 2013-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      • 1970-01-01
      • 2017-01-02
      相关资源
      最近更新 更多