`
lizhensan
  • 浏览: 383085 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java 集合容易犯的错误

    博客分类:
  • java
 
阅读更多

 

  String[] ss=new String[]{"a","b"}; 

 List<String> list= Arrays.asList(ss);

 list.add("dd");

 for(String s:list)

 {

 System.out.println(s);

 }

这段代码 会抛出

 

Exception in thread "main" java.lang.UnsupportedOperationException

 

原因是asList返回的不是一个我们常用的ArrayList,只是一个内部类。

仅仅是把一个数组以List的现实表示,内部还是一个数组,还是仅仅有数组

的一些功能。

 

add的方法就直接抛出异常了。。

 

 

asList的作用只是为了 方便使用。

 

底层仍然是一个数组,保持数组能拥有的所有操作。 
比如修改某一个元素,或者遍历。 
但是不能够改变长度。 
只是以List形态出现,为了某些仅对List读操作的方法可以顺利的执行。

 

 

 

可以用这种方式去实现

 

  String[] ss=new String[]{"a","b"}; 

  List<String> list=new ArrayList<String>();

          list.addAllI( Arrays.asList(ss););

 

  list.add("dd");

  for(String s:list)

  {

  System.out.println(s);

  }

 

 

还有就是 数组不可以强制转换

 Object[]  os=new Object[]{"a","b"};

 String[]  ss=(String[]) os;

这样也会报错:

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

at com.sunline.flow.ide.project.navigator.Test.main(Test.java:42)

 

分享到:
评论

相关推荐

    Java程序员容易犯的10个错误

    本文将针对Java程序员容易犯的10个错误进行详细讲解,帮助大家避免这些陷阱。 1. **Array 转 ArrayList**: 当使用`Arrays.asList()`方法将数组转换为列表时,返回的是`java.util.Arrays.ArrayList`,这是一个内部...

    Java编码常犯错误

    ### Java编码常犯错误 #### 一、字符串拼装SQL **问题描述**:在Java开发过程中,直接使用字符串拼接的方式构造SQL语句是一种常见的做法。然而这种方式存在明显的安全隐患和性能问题。 - **安全漏洞**:直接拼接...

    Java习题(一些不注意就犯的错误)

    本篇将详细探讨"Java习题(一些不注意就犯的错误)"中涉及的知识点,包括字符谜题、循环谜题、异常谜题、类谜题以及库谜题,旨在帮助你更好地理解和避免这些常见问题。 1. 字符谜题: Java中的字符处理有时会让人...

    Java程序最容易犯的错误

    ### Java程序中最易犯的21种错误解析 在Java编程实践中,开发人员经常会遇到一些常见的陷阱和误区,这些问题不仅会影响代码的质量,还可能导致程序运行时出现不可预知的错误。下面将详细介绍这些常见的错误,并提供...

    Java程序员常犯的五个错误

    以下是Java程序员常犯的五个错误的详细解析,以及如何避免这些错误的建议。 1. **过度使用 null** 在Java中,null 常常被用来表示“无”或“不存在”,但过度依赖null可能导致NullPointerException。当方法返回...

    Java工作学习牛客网刷题错误总结.rar

    1. **基础语法错误**:这是初学者最容易犯的错误,包括但不限于括号不匹配、缺少分号、类型转换错误、变量未声明或初始化等。例如,Java中的`==`用于比较基本类型,而`equals()`用于对象的比较,这两者的混淆是常见...

    JAVA基础易错总结(50%你不知道)

    然而,即使是经验丰富的开发者,也可能会在一些基本的Java知识点上犯错误。"JAVA基础易错总结(50%你不知道)"这份资料,由大鹏历时5个月精心原创,旨在揭示那些易被忽视或误解的Java基础知识,帮助开发者提高代码...

    JAVA PUZZLERS(JAVA 解惑)中英文

    《JAVA PUZZLERS》是一本深受欢迎的Java编程书籍,旨在揭示编程语言中的微妙陷阱和易犯错误,帮助开发者提升编程技能和理解。这本书以其独特的“谜题”形式,通过一系列精心设计的问题,引导读者探索Java语言的深奥...

    JAVA.BUG模式详解

    在Java编程中,"BUG模式"通常指的是程序员在编写代码时容易犯的一些常见错误或陷阱,这些错误可能导致程序运行不正常、性能下降甚至系统崩溃。理解并避免这些BUG模式是提高Java程序质量和效率的关键。本篇文章将深入...

    java面试题目精选

    - **易犯错误的关键字**:列出了一些容易被误用的Java关键字。 - **注释的使用**:介绍了不同类型的注释及其在代码中的作用。 - **3.2 原始类型** - **int与Integer的区别**:解释了int作为基本类型与Integer...

    Big_Java(英文版)

    - **常见错误**:列举并解释在Java编程过程中容易犯的错误,帮助读者避免这些陷阱。 - **怎样做**:提供具体的编程技巧和方法,指导读者如何实现特定功能。 - **质量提示**:强调高质量代码的重要性,并给出编写高效...

    疯狂JAVA讲义

    1.6.3 初学者容易犯的错误 18 1.7 垃圾回收机制 20 1.8 何时开始使用IDE工具 21 学生提问:老师,我想学习Java编程,到底是学习Eclipse好呢,还是学习JBuilder好呢? 21 1.9 本章小结 22 本章练习 22 第2章 ...

    java初学者福音

    4. 编写Java程序最容易犯的21种错误: 初学者常犯的错误包括: - 忘记分号或括号不匹配 - 不理解作用域规则,导致变量未声明或不可见 - 对null值处理不当,引发NullPointerException - 不合理使用equals()和==,混淆...

    Java.Bug模式详解

    Bug模式是程序员在编码时容易犯的错误,理解并掌握这些模式有助于提升代码质量,避免不必要的问题出现。下面,我们将详细探讨几个关键的知识点。 1. **内存泄漏**:Java中的内存泄漏通常是由于对象不再使用但仍然被...

    Java工程师必知必会.docx

    12. 初学者容易犯的错误 Java编程基础结构化程序设计简介: 1. 程序的三种基本结构 2. 面向对象程序设计简介 3. 面向对象的基本特征 4. Java的面向对象特征 5. 类和对象 6. 注释、标识符和关键字 7. 数据类型分类 ...

    java问题定位技术

    **常见的Java泥潭**指容易让开发者陷入困境的编程实践: 1. **不稳定的Runtime.getRuntime().exec()**:可能导致安全问题和资源泄漏。 2. **JDK自带的几个Timer的适用场合**:不同的场景选择不同的定时器。 3. **池...

    Java基础知识精华总结

    3. **常见误区**:指出初学者容易犯的错误,提供正确的解决办法。 4. **代码规范**:讲解Java编程规范,如命名规则、注释规范等,提高代码可读性。 通过这些文档的学习,你不仅可以系统地了解Java的基础知识,还能...

    java C++ 文档

    然而,即便如此,新手和经验丰富的开发者都可能在编写代码时犯一些低级错误,这些错误可能导致程序运行异常、性能下降或难以维护。Java新十大低级错误包括: 1. 忘记初始化变量:未初始化的变量可能导致不可预测的...

    OCAOCP Java SE 7 Programmer I & II Study Guide (Exams 1Z0-803 & 1Z0-804)

    4. **常见错误解析**:列举考生在备考过程中容易犯的错误,并提供改正方案。 综上所述,《OCA/OCP Java SE 7 Programmer I & II Study Guide (Exams 1Z0-803 & 1Z0-804)》这本书覆盖了从 Java 基础到高级主题的广泛...

    令人敬畏的错误:令人敬畏的错误

    在“awesome-bugs-master”这个压缩包中,我们可以猜测它可能包含了一个关于JavaScript错误的集合,或者是记录了一些独特、有趣的编程问题的项目。开发者们通常会将这些案例整理出来,以便于其他人学习和避免重复犯...

Global site tag (gtag.js) - Google Analytics