Java 中的 ArrayList 与 String

2024-03-27

我正在实现LZW算法。我已经成功地针对字符串和文本文件实现了它,并且当前正在修改我的代码以处理二进制文件,例如图像或可执行文件(因为我无法将这些文件作为字符串读取)。

我已经更换了String输入我的代码ArrayList<Byte>类型。我的代码现在可以正确压缩和解压缩二进制文件,但速度至少慢 10 倍!这在速度是关键因素的压缩应用中是不可接受的。

我是否正确替换了ArrayList<Byte> for String。是否有具有类似功能的更快替代方案?请注意,LZW 算法需要调整数组大小,因此是标准的arrays[]不适合。

Regards.


Using a List<Byte>将每个字节装箱到一个单独的对象实例中。
总的来说,这是为了性能而可能做的最糟糕的事情之一。

相比之下,数组或字符串可以占用一块固定的内存块。

相反,你应该使用ByteArrayOutputStream,或使用byte[]直接并根据需要调整大小(您可以为此创建一个包装类)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 中的 ArrayList 与 String 的相关文章

  • JPanel透明背景和显示元素[重复]

    这个问题在这里已经有答案了 我插入一个背景图e 变成 aJPanel但一些界面元素消失了 以下 Java Swing 元素不会出现 标签标题 标签 usuario 标签 密码 按钮加速器 你能否使图像透明或元素不透明 setOpaque f
  • .java 和 .scala 类之间是否可能存在循环依赖?

    假设我在 java 文件中定义了类 A 在 scala 文件中定义了类 B A 类使用 B 类 B 类使用 A 类 如果我使用 java 编译器 则会出现编译错误 因为 B 类尚未编译 如果我使用scala编译器A类将找不到 有没有可以同时
  • 有效地查找正则表达式的所有重叠匹配项

    这是后续与 java 正则表达式匹配的所有重叠子字符串 https stackoverflow com q 11303309 244526 有没有办法让这段代码更快 public static void allMatches String
  • JUnit Eclipse 显示 System.out.print() 的

    我正在使用 JUnit 3 和 Eclipse 3 4 当我运行 JUnit 测试用例时 一切正常并且测试完美完成 唯一的事情是我想查看我正在运行的类的输出 所有类都具有一些输出值的基本 System out print 因此 当我运行测试
  • 如何解决错误:java.lang.ClassNotFoundException:io.netty.util.concurrent.GenericFutureListener?

    昨天我第一次尝试用 Java 制作 Prometheus 客户端 从 Python 开始 最后是 GoLang 是否找到示例 import io prometheus client Counter import io prometheus
  • 删除 servlet 中的 cookie 时出现问题

    我尝试使用以下代码删除 servlet 中的 cookie Cookie minIdCookie null for Cookie c req getCookies if c getName equals iPlanetDirectoryPr
  • 如何在 OpenAPI 3.0 中定义字节数组

    我正在将 API 从 Swagger 2 0 迁移到 OpenAPI 3 0 在 DTO 中 我有一个指定为字节数组的字段 Swagger 对 DTO 的定义 Job type object properties body type str
  • firestore快照监听器生命周期和定价之间有什么关系?

    在我的活动中 我有一个字符串列表 这些字符串表示我想要附加快照侦听器的 Firestore 文档 我使用 Acivity ModelView 存储库结构 在活动的 onCreate 中 我向 ViewModelProvider 询问适当的
  • Java:检查给定日期是否在当前月份内

    我需要检查给定的日期是否在当前月份 我编写了以下代码 但 IDE 提醒我getMonth https docs oracle com javase 7 docs api java util Date html getMonth and ge
  • 如何在具有动态列的表中插入值 Jdbc/Mysql

    我想在具有动态列的表中添加值 我设法创建一个包含动态列的表 但我不知道如何插入数据 Create Table sql CREATE TABLE MyDB myTable level INTEGER 255 int columnNumber
  • 如何在 PHP 中修剪定界文档(长字符串)中的每一行

    我正在创建一个 PHP 函数 可以修剪长字符串中的每一行 例如
  • Maven 多模块项目结构问题

    自从过去几周构建我的 Maven 多模块项目以来 这是我的一次有趣的经历 当我决定使用 Maven 进行构建生命周期管理时 我有几个原因希望选择 Maven A 大多数开发团队都是分开的 这样每个团队都可以在项目中的单独模块上工作 例如团队
  • 如何模拟一个方面

    我目前正在使用aspectj 开发一些监控工具 因为这个工具应该是技术独立的 尽可能 所以我没有使用 Spring 进行注入 但我希望我的方面能够经过单元测试 方面示例 Aspect public class ClassLoadAspect
  • getClassLoader().getResource() 返回 null

    我有这个测试应用程序 import java applet import java awt import java net URL public class Test extends Applet public void init URL
  • Vertx HttpClient getNow 不工作

    我的 vertx HttpClient 有问题 下面的代码显示使用 vertx 和纯 java 测试 GET Vertx vertx Vertx vertx HttpClientOptions options new HttpClientO
  • 如何自定义JProgressBar?

    我正在制作一个启动器 我想要一个自定义的进度栏 我已经做了一些研究 并且可以使用 JavaFX 从未用它做过任何事情 并且可以通过替换 UI 来实现 我正在寻找一个具有圆形边缘和圆形填充的酒吧 像这样的事情 package gui impo
  • java JFileChooser 文件大小过滤器

    我知道我可以按文件类型进行过滤 但是可以按文件大小进行过滤吗 例如 JFileChooser 仅显示 3 MB 以内的图片 简短的回答应该是 你尝试过什么 长答案是肯定的 JFileChooser fc new JFileChooser f
  • 当容器大小更改时,JTable 仅调整选定列的大小

    对于面板内的 JTable 如果面板变大 我如何将额外的空间仅分配给某些列 在我的例子中 分配给最后一列 尽管提供 第 3 4 列和8 将获得额外的空间 我想允许用户手动更改所有列的列大小 我尝试了 table setAutoResizeM
  • Java SE + Spring Data + Hibernate

    我正在尝试使用 Spring Data Hibernate 启动 Java SE 应用程序 并且到目前为止已经完成了以下操作 配置文件 Configuration PropertySource classpath hibernate pro
  • 监控 Java 应用程序上的锁争用

    我正在尝试创建一个小基准 在 Groovy 中 以显示几个同步方法上的高线程争用 当监控自愿上下文切换时 应该会出现高争用 在 Linux 中 这可以通过 pidstat 来实现 程序如下 class Res private int n s

随机推荐

  • 使用 AVAssetReader 读取视频文件时由于内存利用率高而导致应用程序崩溃

    我正在尝试使用此问题中接受的答案中的方法来读取视频帧 使用 AVPlayer 访问单个帧 https stackoverflow com questions 39570745 accesing individual frames using
  • 从 boost::shared_ptr 转换为 std::shared_ptr?

    我有一个内部使用 Boost 版本的库shared ptr并且只暴露那些 对于我的应用程序 我想使用std shared ptr只要有可能 遗憾的是 这两种类型之间没有直接转换 因为引用计数的内容取决于实现 有什么办法可以同时拥有boost
  • 我可以在 Rails 模型中定义方法吗?

    我的 Rails 模型的代码试图define method method name 模型内部 我不断得到 NoMethodError undefined method define method 我究竟做错了什么 我这样做是不是在错误的地方
  • 找不到 web api 路由属性

    我需要在我的 Web 服务中实现一个方法 该方法可通过定义的路线使用 所以我用了Route像这样的属性 Route api New public void CreateNew int id Do stuff 但是VS2013说找不到命名空间
  • Sidekiq 服务器未加载配置文件

    我正在尝试使用 sinatra 应用程序设置 sidekiq 并且我有 使用配置文件启动 sidekiq 工作程序以在守护程序模式下运行时遇到问题 我的项目具有以下结构 project config sidekiq yml Sidekiq
  • 如何在jquery中从右到左切换div

    我有这个小提琴 我试图创建一个浮动 div 它应该从右到左切换 我对 UI 很陌生 所以我的代码有点混乱 这是我的代码和FIddle https jsfiddle net KFmLv 6752 widget toggle btn click
  • Room :来自 Dao 的 LiveData 将在每次更新时触发 Observer.onChanged,即使 LiveData 值没有变化

    我发现只要数据库中的行被更新 Dao 返回的 LiveData 就会调用它的观察者 即使 LiveData 值显然没有改变 考虑如下例所示的情况 示例实体 Entity public class User public long id pu
  • 防止控件在禁用时变灰

    在 winforms net 控件中 如果我们将 Enabled 属性设置为 false 则控件将变灰 在这种情况下 许多颜色组合将变得不可读 因为我提供了在运行时为用户更改表单颜色的选项 我可以使用 ReadOnly 属性 但它仅适用于
  • 如何将覆盖视图放在操作栏 Sherlock 上

    我想在操作栏上设置一些视图来显示教程文本 例如单击此处并发送电子邮件 这可能吗 我问是因为我知道操作栏使用布局上的顶部空间 而片段或活动使用剩余空间 我的第二个问题是如何在操作栏上显示所有操作项 我使用 ActionBarSherlock
  • Word 2011 VBA 中的文件对话框

    我希望能进行一些健全性检查 我正在为 Mac 改编一个 Word 加载项 用 VBA 为 Word 2010 编写 具体来说 此时为 Word 2011 我知道其中的许多差异 但我无法找到其中的差异很多文档都明显缺乏 FileDialog
  • 正则表达式匹配最多 9 位的整数

    我想创建一个正则表达式 其中只允许数字 最大长度为 9 没有最小长度 我想出了 d 9 0 9 但它不起作用 你很接近了 尝试这个 d 0 9 和 分别匹配文本的开头和结尾 d 0 9 匹配字符串中的任何位置 所以d0000会通过 因为它会
  • Sql Query帮助从两个表中获取不匹配的记录

    我正在尝试从 2 个表中获取不匹配的记录 For ex TableA ID Account 1 Acc1 2 Acc2 3 Acc3 TableB Opp Accountid Opp1 1 Opp2 2 Opp3 4 我需要知道哪个 acc
  • Gradle 的 PMD 插件:什么是可接受的参数?

    Java 1 7 0 40 摇篮1 10 我从未使用过 Gradle 的 PMD 插件 并且在尝试将规则集添加到我的项目时遇到了麻烦build gradle The Pmd 文档 http www gradle org docs curre
  • 在 Git 中使用替代 diff 算法

    Because git是为源代码设计的 它的默认值diff算法将线视为不可分割的最小单位 我正在尝试编辑一些在第 80 列自动换行的 Markdown 文件 添加句子可能会导致段落的其余部分被标记为已更改 有没有办法让 Git 使用更适合文
  • 使用 ssh 的 TRAMP 不会获取 .bash_profile / .profile

    我正在使用 Aquamacs 适用于 OSX 的图形 emacs 使用 emacs 24 和 ranp 版本 2 2 3 来编辑远程服务器上的一些文件 TRAMP 设置使用ssh并且在编辑文件方面工作得很好 编译失败是因为编译器不在路径中
  • bash 中的间接变量赋值

    似乎在 bash 中进行间接变量设置的推荐方法是使用eval var x val foo eval var val echo x gt foo 问题是常见的eval var x val 1 n pwd eval var val bad ou
  • C语言中的*和&有什么区别?

    我正在学习 C 但我仍然不确定我是否理解两者之间的区别 and yet 请允许我尝试解释一下 int a Declares a variable int b Declares a pointer int c Not possible a 1
  • JWT 令牌的最大大小是多少?

    我需要知道的最大长度 JSON Web 令牌 JWT 规格中没有相关信息 难道说 长度没有限制吗 我也一直在努力寻找这个 我会说 尝试并确保它是7kb 以下 虽然 JWT 在规范中没有定义上限 http www rfc editor org
  • Rmarkdown:在选项卡集下添加标题

    在 Rmarkdown 中我使用 tabset 将块拆分为选项卡 Tabset 1 tabset A Text under tab A B Text under tab B 我想在一些选项卡下添加一个大标题 Tabset 1 tabset
  • Java 中的 ArrayList 与 String

    我正在实现LZW算法 我已经成功地针对字符串和文本文件实现了它 并且当前正在修改我的代码以处理二进制文件 例如图像或可执行文件 因为我无法将这些文件作为字符串读取 我已经更换了String输入我的代码ArrayList