六、java.util篇

Q6.1 java能动态分配数组吗?
答:可以。例如int n = 3; Language[] myLanguages = new Language[n];

Q6.2 我怎么知道数组的长度?
答:用length属性。如上例中的  myLanguages.length 就为 3。

Q6.3 我还想让数组的长度能自动改变,能够增加/删除元素。
答:用顺序表--java.util.List接口。
你可以选择用ArrayList或是LinkedList,前者是数组实现,后者是链表实现。
例如:  List list = new ArrayList(); 或是 List list = new LinkedList();  。

Q6.4 什么是链表?为什么要有ArrayList和LinkedList两种List?
答:请补习数据结构。

Q6.5 我想用队列/栈。
答:用java.util.LinkedList。

Q6.6 我希望不要有重复的元素。
答:用集合--java.util.Set接口。例如:Set set = new HashSet()。

Q6.7 我想遍历集合/Map。
答:用java.util.Iterator。参见API。

Q6.8 我还要能够排序。
答:用java.util.TreeSet。例如:Set set = new TreeSet()。放进去的元素会自动排序

你需要为元素实现Comparable接口,还可能需要提供equals()方法,compareTo()方法,hashCode()方法。

Q6.9 但是我想给数组排序。
答:java.util.Arrays类包含了sort等实用方法。

Q6.10 我想按不同方式排序。
答:为每种方式定义一个实现了接口Comparator的排序类并和Arrays或TreeSet综合运用。

Q6.11 Map有什么用?
答:存储key-value的关键字-值对,你可以通过关键字来快速存取相应的值。

Q6.12 set方法没问题,但是get方法返回的是Object。
答:强制类型转换成你需要的类型。参见Q5.12。

Q6.13 ArrayList和Vector有什么不同?HashMap和Hashtable有什么不同?
答:ArrayList和HashMap是多线程不安全的,在多个线程中访问同一个ArrayList对象可能会引起冲突并导致错误。而Vector和Hashtable是多线程安全的,即使在多个线程中同时访问同一个Vector对象也不会引起差错。看起来我们更应该使用Vector和Hashtable,但是实际上Vector和Hashtable的性能太差,所以如果你不在多线程中使用的话,还是应该用ArrayList和HashMap。

Q6.14 我要获得一个随机数。
答:使用java.util.Random类。

Q6.15 我比较两个String总是false,但是它们明明都是"abc" !
答:比较String一定要使用equals或equalsIgnoreCase方法,不要使用 == !==比较的是两个引用(变量)是否指向了同一个对象,而不是比较其内容。

Q6.16 我想修改一个String但是在String类中没找到编辑方法。
答:使用StringBuffer类。
String str = "......."; //待处理的字符串StringBuffer buffer = new StringBuffer(str); //使用该字符串初始化一个StringBuffer
buffer.append("..."); //调用StringBuffer的相关API来编辑字符串
String str2 = buffer.toString(); //获得编辑后的字符串。
另外,如果你需要将多个字符串连接起来,请尽量避免使用+号直接连接,而是使用StringBuffer.append()方法。

Q6.17 我想处理日期/时间。
答:使用java.util.Date类。你可以使用java.text.SimpleDateFormat类来在String和
Da
te间互相转换。
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //规定日期格式

Date date = formatter.parse("2003-07-26 18:30:35"); //将符合格式的String转换为DateString s = formatter.format(date); //将Date转换为符合格式的String

From: http://www.cndw.com/tech/page/200602154466.asp

Java FAQ(6)相关推荐

  1. Java FAQ(slhynju 0.3版)

    ****** 版权声明 ******** * 在完整保留此版权声明并接受下列条款的前提下,你可以自由的获取.存储.使用.修 改.分发本文. * 由于你可能自第三方获得本文,作者不保证本文的正确性和一致 ...

  2. Java FAQ(1)

    一.准备篇 Q1.1 什么是Java.Java2.JDK?JDK后面的1.3.1.4版本号又是怎么回事? 答:Java是一种通用的,并发的,强类型的,面向对象的编程语言. JDK是Sun公司分发的免费 ...

  3. java sql 返回 json_java访问oracle 返回json 实践(一)

    ------------建一个javabean 类 WorkRecord 用于保存访问数据库记录的内容 public class WorkRecord { private long do_seq; p ...

  4. java jigsaw_Java 9和Project Jigsaw如何破坏您的代码

    java jigsaw Java 9迫在眉睫,它将带有完整的Project Jigsaw . 在我从OpenJFX邮件列表的最近讨论中得知它可能会破坏现有代码之前,我并没有对此给予太多关注. 这对于J ...

  5. Java 9和Project Jigsaw如何破坏您的代码

    Java 9迫在眉睫,它将带有完整的Project Jigsaw . 在我从OpenJFX邮件列表的最近讨论中得知它可能会破坏现有代码之前,我并没有对此给予太多关注. 这对于Java非常不寻常,因此引 ...

  6. 頑健なJavaプログラムの書き方

    頑健なJavaプログラムの書き方(Writing Robust Java Code) The AmbySoft Inc. Coding Standards for Java v17.01d Sun M ...

  7. Java JDK 5-JDK12文档导航【持续更新】

    最近总觉得去查询JDK各个版本之前的差异和JVM配置上的异同不是很方便,特整理贴于此处. 笔记1:这里说明了为什么在JDK6-JDK8中 JVM配置里面是以-server 或-client开头的来区分 ...

  8. 非常不错的编程技术教程

    下面是一些非常不错的编程教程,当然,全是英文版的.不过因为是新手教程,所以非常容易阅读,可以在学习技术的同时加强一下自己的英语阅读能力. 如果你是一个新手,建议你把本页设为你的收藏夹. C Intro ...

  9. 前缀 中缀 后缀表达式2

    对于未经训练的用户来说,计算机科学领域中数学表达式求值的传统方法即不顺手又难以使用:软件工程师 Nikola.Stepan 旨在改变这些传统方法.他的 applet W3Eval 对表达式求值与您用纸 ...

最新文章

  1. CVPR 2020几篇论文内容点评:目标检测跟踪,人脸表情识别,姿态估计,实例分割等
  2. python可视化案例书籍推荐_这5款Python可视化神器,总有一款适合你!
  3. Asp.net Mvc 多级控制器 路由重写 及 多级Views目录 的寻找视图的规则 (多级路由) 如:Admin/Test/Index...
  4. python constructor_python – 无法成功启动boa-constructor
  5. 前端进阶-Event
  6. 韩顺平php教程笔记,PHP笔记,韩顺平php笔记_PHP教程
  7. 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第3节 综合案例_文件上传_1_综合案例_文件上传的原理...
  8. php中的列表属性,php类中的长属性列表 – 我可以缩短它吗?
  9. PQ分区魔术师图解教程
  10. 【CodeForces 697C】Lorenzo Von Matterhorn(LCA)
  11. python中write函数%啥意思_python write( )函数
  12. 使用SNMP检查服务器中运行的进程信息
  13. 【JavaScript】JavaScript之快速入门
  14. 如何把新加的分区挂载到 根目录
  15. D1 哪吒开发板 上电记录
  16. 远程桌面协议(RDP)工具 FreeRDP
  17. 步进电机五根线怎么接_热电阻三根线怎么接 浅谈热电阻识别方法
  18. 程序员常用的代码比较工具,你更喜欢哪款?
  19. 2013-2014Mac book Air 创建4个分区Macos加win7双系统制作安装详细教程
  20. weiit-saas第六篇《如何快速制作与搭建微信公众号商城》

热门文章

  1. DNS重绑定DNS Rebinding攻击
  2. 自主互助四环节之计算机教案,自主互助学习型课堂的实施方案
  3. linux vnc服务重启,CentOS下配置VNCServer,重启服务仍然生效
  4. mysql查询根据季度查询_Mysql 按年、季度、月查询统计
  5. 等于x分之a的平方的导数_数学漫谈导数
  6. 使用mne进行脑电信号分析
  7. 混合SSVEP-P300 BCI生产双频SSVEP
  8. 新冠轻症也会导致大脑退化,牛津大学最新研究登上Nature
  9. 诺奖团队最新研究:独居太久容易睡眠不足、暴饮暴食 | Nature
  10. Nature盘点的这些代码,个个都改变了科学:Fortran、AlexNet还有arXiv等