Java FAQ(6)
六、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)相关推荐
- Java FAQ(slhynju 0.3版)
****** 版权声明 ******** * 在完整保留此版权声明并接受下列条款的前提下,你可以自由的获取.存储.使用.修 改.分发本文. * 由于你可能自第三方获得本文,作者不保证本文的正确性和一致 ...
- Java FAQ(1)
一.准备篇 Q1.1 什么是Java.Java2.JDK?JDK后面的1.3.1.4版本号又是怎么回事? 答:Java是一种通用的,并发的,强类型的,面向对象的编程语言. JDK是Sun公司分发的免费 ...
- java sql 返回 json_java访问oracle 返回json 实践(一)
------------建一个javabean 类 WorkRecord 用于保存访问数据库记录的内容 public class WorkRecord { private long do_seq; p ...
- java jigsaw_Java 9和Project Jigsaw如何破坏您的代码
java jigsaw Java 9迫在眉睫,它将带有完整的Project Jigsaw . 在我从OpenJFX邮件列表的最近讨论中得知它可能会破坏现有代码之前,我并没有对此给予太多关注. 这对于J ...
- Java 9和Project Jigsaw如何破坏您的代码
Java 9迫在眉睫,它将带有完整的Project Jigsaw . 在我从OpenJFX邮件列表的最近讨论中得知它可能会破坏现有代码之前,我并没有对此给予太多关注. 这对于Java非常不寻常,因此引 ...
- 頑健なJavaプログラムの書き方
頑健なJavaプログラムの書き方(Writing Robust Java Code) The AmbySoft Inc. Coding Standards for Java v17.01d Sun M ...
- Java JDK 5-JDK12文档导航【持续更新】
最近总觉得去查询JDK各个版本之前的差异和JVM配置上的异同不是很方便,特整理贴于此处. 笔记1:这里说明了为什么在JDK6-JDK8中 JVM配置里面是以-server 或-client开头的来区分 ...
- 非常不错的编程技术教程
下面是一些非常不错的编程教程,当然,全是英文版的.不过因为是新手教程,所以非常容易阅读,可以在学习技术的同时加强一下自己的英语阅读能力. 如果你是一个新手,建议你把本页设为你的收藏夹. C Intro ...
- 前缀 中缀 后缀表达式2
对于未经训练的用户来说,计算机科学领域中数学表达式求值的传统方法即不顺手又难以使用:软件工程师 Nikola.Stepan 旨在改变这些传统方法.他的 applet W3Eval 对表达式求值与您用纸 ...
最新文章
- CVPR 2020几篇论文内容点评:目标检测跟踪,人脸表情识别,姿态估计,实例分割等
- python可视化案例书籍推荐_这5款Python可视化神器,总有一款适合你!
- Asp.net Mvc 多级控制器 路由重写 及 多级Views目录 的寻找视图的规则 (多级路由) 如:Admin/Test/Index...
- python constructor_python – 无法成功启动boa-constructor
- 前端进阶-Event
- 韩顺平php教程笔记,PHP笔记,韩顺平php笔记_PHP教程
- 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第3节 综合案例_文件上传_1_综合案例_文件上传的原理...
- php中的列表属性,php类中的长属性列表 – 我可以缩短它吗?
- PQ分区魔术师图解教程
- 【CodeForces 697C】Lorenzo Von Matterhorn(LCA)
- python中write函数%啥意思_python write( )函数
- 使用SNMP检查服务器中运行的进程信息
- 【JavaScript】JavaScript之快速入门
- 如何把新加的分区挂载到 根目录
- D1 哪吒开发板 上电记录
- 远程桌面协议(RDP)工具 FreeRDP
- 步进电机五根线怎么接_热电阻三根线怎么接 浅谈热电阻识别方法
- 程序员常用的代码比较工具,你更喜欢哪款?
- 2013-2014Mac book Air 创建4个分区Macos加win7双系统制作安装详细教程
- weiit-saas第六篇《如何快速制作与搭建微信公众号商城》
热门文章
- DNS重绑定DNS Rebinding攻击
- 自主互助四环节之计算机教案,自主互助学习型课堂的实施方案
- linux vnc服务重启,CentOS下配置VNCServer,重启服务仍然生效
- mysql查询根据季度查询_Mysql 按年、季度、月查询统计
- 等于x分之a的平方的导数_数学漫谈导数
- 使用mne进行脑电信号分析
- 混合SSVEP-P300 BCI生产双频SSVEP
- 新冠轻症也会导致大脑退化,牛津大学最新研究登上Nature
- 诺奖团队最新研究:独居太久容易睡眠不足、暴饮暴食 | Nature
- Nature盘点的这些代码,个个都改变了科学:Fortran、AlexNet还有arXiv等