数组的 Arrays.asList()

2023-11-23

这个转换有什么问题吗?

public int getTheNumber(int[] factors) {
    ArrayList<Integer> f = new ArrayList(Arrays.asList(factors));  
    Collections.sort(f);
    return f.get(0)*f.get(f.size()-1);
}

我在阅读了中找到的解决方案后做了这个从数组创建ArrayList。第二行(排序)getTheNumber(...)导致以下异常:

线程“main”中的异常 java.lang.ClassCastException: [我无法转换为 java.lang.Comparable]

这里有什么问题吗?我确实意识到排序可以通过Arrays.sort(),我只是对这个感到好奇。


让我们考虑以下简化示例:

public class Example {
    public static void main(String[] args) {
        int[] factors = {1, 2, 3};
        ArrayList<Integer> f = new ArrayList(Arrays.asList(factors));
        System.out.println(f);
    }
}

在 println 行,打印类似“[[I@190d11]”的内容,这意味着您实际上已经构造了一个包含 int 的 ArrayListarrays.

您的 IDE 和编译器应该警告该代码中未经检查的赋值。你应该总是使用new ArrayList<Integer>() or new ArrayList<>()代替new ArrayList()。如果你使用了它,就会因为试图通过而出现编译错误List<int[]>到构造函数。

没有自动装箱int[] to Integer[],无论如何,自动装箱只是编译器中的语法糖,因此在这种情况下,您需要手动进行数组复制:

public static int getTheNumber(int[] factors) {
    List<Integer> f = new ArrayList<Integer>();
    for (int factor : factors) {
        f.add(factor); // after autoboxing the same as: f.add(Integer.valueOf(factor));
    }
    Collections.sort(f);
    return f.get(0) * f.get(f.size() - 1);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数组的 Arrays.asList() 的相关文章

  • 对 Java 中 *any* 类的所有实例进行全排序

    我不确定以下代码是否能确保 Comparator 的 Javadoc 中给出的所有条件 class TotalOrder
  • QByteArray 到整数

    正如您可能从标题中看出的那样 我在转换QByteArray为一个整数 QByteArray buffer server gt read 8192 QByteArray q size buffer mid 0 2 int size q siz
  • 使用 Spring Data REST 处理自定义异常 (i18n)

    我正在使用 Spring Boot 1 5 4 和 Spring JPA Spring Data REST HATEOAS 我正在寻找一种最佳实践 Spring 方式 来自定义异常 Spring Data REST 正在管理添加 i18n
  • 无法实例化接收器 com.parse.GcmBroadcastReceiver

    我正在编写一个使用 GCM 通知和解析推送的离子应用程序 这个应用程序正在使用这些插件 com ionic keyboard 1 0 3 Keyboard com phonegap plugins PushPlugin 2 4 0 Push
  • Java 唤醒休眠线程

    我阅读了其他帖子 但没有找到我正在寻找的确切答案 所以我希望有人能给出一些澄清 我有一个将运行一段时间的程序 我有一些在后台运行的线程来执行各种任务 为了简单起见 让我们考虑 3 个线程 ThreadA每 10 秒执行一次任务 其中Thre
  • C# 中的协变和逆变

    首先我要说的是 我是一名正在学习 C 编程的 Java 开发人员 因此 我会将我所知道的与我正在学习的进行比较 我已经使用 C 泛型几个小时了 我已经能够在 C 中重现我在 Java 中知道的相同内容 除了几个使用协变和逆变的示例 我正在读
  • 打印 jasper 文件时执行报表 SQL 语句时出错

    我修改了一个旧项目 但无法确定这段代码有什么问题 使用下面的 jrxml它创造 jasper文件 当我打印 jasper 文件时 使用此代码JasperPrint jasperPrint JasperFillManager fillRepo
  • 不要模拟值对象:过于通用的规则,没有解释

    以下是 Mockito 单元测试框架的引用 不要模拟值对象 为什么有人会想要这样做呢 因为实例化对象太痛苦了 gt 无效 原因 如果创造新的装置太困难 那就是一个迹象 代码可能需要一些认真的重构 另一种方法是创建 价值对象的构建者 有一些工
  • 在 eclipse 之外将 Spring MVC 应用程序部署到 tomcat 的幕后会发生什么?

    我猜想使用像 eclipse 这样很棒的 IDE 的一个缺点是你会忽略应用程序幕后发生的事情 我是一名 Ruby 开发人员 所以不是一名 Java 老手 所以我一直在用 java 编写一个项目 并使用 spring 框架进行 IOC 和 M
  • 如何通过子 POJO 的属性过滤复合 ManyToMany POJO?

    我有两个像这样的房间实体 Entity public class Teacher implements Serializable PrimaryKey autoGenerate true public int id ColumnInfo n
  • 如何使用 Guava 连接字符串?

    我写了一些代码来连接字符串 String inputFile for String inputLine list inputFile inputLine trim 但我不能使用 连接 所以我决定使用 Guava 所以我需要使用Joiner
  • JavaScript:预期的赋值或函数调用,却看到了一个表达式

    我正在使用 JSHint 来确保我的 JavaScript 是 严格的 但我收到以下错误 预期是赋值或函数调用 但看到的是表达式 关于以下代码 var str A B C D var data var strArr str split fo
  • 如何使用云打印打印Android活动显示

    我正在尝试将 Google 云打印实现到应用程序中 遵循集成指南 https developers google com cloud print docs android 我试图通过打印 google com 来保持基本 单击我创建的打印按
  • 在服务器内部调用 Web 服务

    我有一个网络服务 getEmployee 当传递 id 时 它会获取单个员工的员工详细信息 同一服务器上的另一个 Web 服务 getEmployeeList 当传递一个部门时 它会获取整个员工列表 这将获取部门的 ID 然后调用 getE
  • 从给定的项目列表创建子列表

    我首先要说的是以下问题不是为了家庭作业目的即使因为我几个月前就完成了软件工程师的工作 无论如何 今天我正在工作 一位朋友向我询问了这个奇怪的排序问题 我有一个包含 1000 行的列表 每行代表一个数字 我想创建 10 个子列表 每个子列表都
  • 无法映射 ftl 文件中的 jsonRequest 属性

    我想在 FTL 文件中映射下面的 json 文件市场和子市场字段 但是当我尝试下面的代码时 它没有映射 有人可以帮助我吗 我从 2 天开始就无法映射它 Json请求 ProcessOrderRequest prevalidationMode
  • scala中的协变类型参数需要在java接口中保持不变

    我有一个看起来像这样的特征 一些进一步的信息可以在我自己提出了这个相关问题 https stackoverflow com questions 3695990 inheritance and automatic type conversio
  • H2 - (相当)长的 INSERT 失败,错误 42000

    H2 内存中 插入 错误 42000 尝试过版本 1 4 196 1 4 197 1 4 199 我还尝试在 H2 服务器 本地 上执行 INSERT 也失败 给出错误的行 抱歉 但出于安全原因 我无法生成更多 INSERT INTO tb
  • Integer.parseInt 引发的 NumberFormatException

    嘿 我在学校上编码课 但老师没有很好地解释 所以我们必须在网上查找我所做的信息 但我无法找到代码中的错误 你能帮我吗 char end s do System out println Tipo de boleto char boleto c
  • 我找不到 IntelliJ 快捷方式

    我使用 vim 一段时间 我知道有一个 intellij vim 插件 我很好奇内置的 IntelliJ 文本导航存在什么 如何打开实时模板来创建模板 如何查看以 tr 开头的现有模板列表 如何进行全局搜索并在当前文档中进行搜索 然后转到下

随机推荐

  • Lucene - 短语中的通配符

    我目前正在尝试使用 Lucene 来搜索索引中填充的数据 我可以通过将其括在括号中来匹配确切的短语 即 处理文档 但无法让 Lucene 通过执行任何类型的 处理文档 来找到该短语 明显的区别是末尾的通配符 我目前正在尝试使用 Luke 来
  • Perl:使用变量传递正则表达式搜索和替换

    我有一个 Perl 脚本 它读取正则表达式搜索并替换 INI 文件中的值 在我尝试使用捕获变量 1 或 1 之前 这工作正常 这些被逐字替换为 1 或 1 有什么想法可以让这个捕获功能通过变量传递正则表达式位吗 示例代码 不使用 ini 文
  • 在 Renderscript 计算中将数组传递给 rsForEach

    据我所知 我发现 RenderScript 缺乏良好的文档 forEachRS 中的方法是对分配中的每个单独项目执行 root 我正在尝试为 Renderscript 制作一个进行图像处理的库 作为起点 我达到了这个很好的答案 但问题是模糊
  • NSURLSession 和后台流上传

    我在使用时遇到一些问题NSURLSession将照片从资源库上传到服务器 首先NSURLSession不支持流式上传 我在尝试使用它时遇到了异常 property nonatomic strong NSURLSession uploadSe
  • 如何使用密钥大小和明文长度计算 RSA 密文的大小?

    我有一些明文 我想使用 RSA PKCS V21 使用 PolarSSL 库 进行加密 问题是我需要在执行算法之前知道密文的大小 用于动态内存分配目的 我知道 RSA 密钥大小和明文长度 我还想知道输入明文长度的限制 任何想法 只需检查RS
  • Unicode 与实体框架

    我有一个带有 nvarchar 字段的表 MS SQL Server 2008 R2 对于测试 此代码运行良好 Update Screenshots set name N where id 230246 现在我创建了实体框架模型 我已将 U
  • Elisp 中的 CGI 编程?

    有人为 elisp 编写过 CGI 编程库吗 我快速拼凑了第一个脚本 然而 我只是一个长期的 emacs 用户 我从来没有真正编写过它 当我看到我可以在 emacs 而不是 bash 中编写脚本 script 时 我想我应该尝试一下 usr
  • 如果用户提交表单,则不要询问确认

    我使用以下 JavaScript 代码来警告用户 如果他尝试重定向到另一个页面而不提交表单 window onbeforeunload function return Are you sure that you want to leave
  • servicePrincipalName 应该具有什么值?

    我正在尝试在我的服务上设置客户端模拟 我需要为我的服务端点的 servicePrincipalName 设置一个值 我正在看这个MSDN 文章但还是不太明白 我的服务托管在我们称为 ServerName1 的服务器上的控制台应用程序中 乌里
  • 类型的打字稿扩展运算符[重复]

    这个问题在这里已经有答案了 我正在尝试定义一种类型 该类型获取函数类型作为泛型参数 并返回一个与输入函数类型相同的函数类型 只是它最后还有一个参数 type AugmentParam
  • java.lang.NoClassDefFoundError:无法初始化类 sun.nio.ch.FileChannelImpl

    我正在开发一个执行的应用程序Jython 2 5 3脚本来自JAVA 1 6 027 该脚本只是使用编解码器库打开一个文件 如下所示 try from codecs import open as codecs open except Imp
  • 以正确的方式避免循环依赖 - NestJS

    说我有一个StudentService一种为学生增加课程的方法LessonService使用一种将学生添加到课程中的方法 在我的课程和学生解决程序中 我希望能够更新本课程学生关系 所以在我的LessonResolver我有一些类似的事情 a
  • 在 VS Code 控制台中调试 JavaScript

    如何在 VSCode 控制台中快速测试 JavaScript 如下图所示 我必须安装扩展才能执行此操作吗 我在 Ubuntu 和 Windows 10 中使用 VSCode 但我没有看到Console 我所看到的只是调试控制台 Proble
  • 这个带有可变引用参数的 JavaScript 函数是纯函数吗?

    我有同样的问题this one 但是在 JavaScript 的上下文中 From 维基百科 纯函数 的返回值与same论据 那里进一步声称 纯函数不允许使用 可变引用参数 来改变返回值 在 JavaScript 中 每个普通对象都作为 可
  • 将简单套接字变成 SSL 套接字

    我编写了简单的 C 程序 它们使用套接字 客户端 和 服务器 UNIX Linux 用法 服务器端简单地创建一个套接字 sockfd socket AF INET SOCK STREAM 0 然后将其绑定到 sockaddr bind so
  • 为什么 JPA 实体中的属性不允许“公共”?

    The JPA 2 0规范第 22 页说 类的实例变量必须 是私有的 受保护的或包的 可见性与是否 字段访问或属性访问是 用过的 当使用属性访问时 属性访问器方法必须是 公共或受保护 为什么不允许公众访问 对于公共字段 代理将无法可靠地工作
  • 使用自定义访问者时,如何停止使用 Boost Graph Library 进行广度优先搜索?

    假设我找到了符合我的条件的节点 我需要停止搜索 解决方案是抛出已知类型的异常 然后在调用方捕获它 来自FAQ 如何提前退出 BFS 等算法 创建一个在您想要中断搜索时抛出异常的访问者 然后将对 breadth first search 的调
  • Select 和 SelectMany 之间的区别

    我一直在寻找之间的区别Select and SelectMany但我一直没能找到合适的答案 我需要了解使用 LINQ To SQL 时的区别 但我发现的只是标准数组示例 有人可以提供 LINQ To SQL 示例吗 SelectMany展平
  • OpenCV Android - 使用 CameraBridgeViewBase 的颜色问题

    我在使用 Android 模拟器和 OpenCV 时遇到一个奇怪的问题CameraBridgeViewBase Using onCameraFrame我收到一张看起来未正确解码的图片 public Mat onCameraFrame CvC
  • 数组的 Arrays.asList()

    这个转换有什么问题吗 public int getTheNumber int factors ArrayList