Java基础整理
一、Java中的遍历
1、在java开发中会碰到遍历List删除其中多个元素的情况,如果使用一般的for循环以及增强的for循环,代码会抛出异常ConcurrentModificationException。
(1)一般的for循环
for(int i=0;i<list.size();i++){
if(list.get(i).equals("example")){
list.remove(i);
}
}
(2)增强for循环
for(String str:list){
if(str.equals("example")){
list.remove(str);
}
}
(3)iterator遍历【只有这种情况可以在遍历的同时删除,注意在循环内部iterator.next()不要重复调用否则会报错】
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()){
String x = iterator.next();
if(x.equals("example")){
iterator.remove();
}
}

二、HashMap的顺序问题
HashMap本身是无序状态,所以使用Iterator读取到的顺序不一定是写入的顺序,如果要保证顺序,需要使用LinkedHashMap
三、使用String.split("正则表达式")
如果直接使用“|”来进行分割字符串,会导致字符串按照正则表达式来切割,导致字符串被分隔为一个个的字符。这时需要使用“\\|”来实现愿意。
四、Java中java.util.Date相关知识整理
1、java.util.Date的after和before、equal
public boolean after(Date when):当且仅当此 Date 对象表示的瞬间比 when 表示的瞬间晚,才返回 true;否则返回 false。
public boolean before(Date when):当且仅当此 Date 对象表示的瞬间比 when 表示的瞬间早,才返回 true;否则返回 false。
public boolean equals(Object obj):比较两个日期的相等性。当且仅当参数不为 null,并且是一个表示与此对象相同的时间点(到毫秒)的 Date 对象时,结果才为 true。因此,当且仅当 getTime 方法对于两个 Date 对象返回相同的 long 值时,这两个对象才是相等的。
五、java中replace和replaceAll的区别
class HtmlFileFilter implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
if (name.endsWith(".html"))
return true;
return false;
}
}
public void test() {
File file = new File("E:/files");
String[] list = file.list(new HtmlFileFilter());
System.out.println("HTML类型的文件有:");
for (String f : list) {
System.out.println(f);
}
}
同时你也可以使用匿名的内部类来实现文件过滤的功能,简化代码:
import java.io.File;
import java.io.FilenameFilter; public class TestFile {
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("E:/files");
String[] list = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
if (name.endsWith(".html"))
return true;
return false;
}
});
System.out.println("HTML类型的文件有:");
for (String f : list) {
System.out.println(f);
}
} }
Java基础整理的更多相关文章
- JAVA基础整理-集合篇(一)
集合作为JAVA的基础知识,本来感觉自己理解的很清楚了,但是在最近的一次面试中还是答得不尽如人意!再次做一下整理,以便加深理解以及随时查阅. 首先,java.util包中三个重要的接口及特点:List ...
- java基础整理1
1.匿名对象:new persion().tell();这样的,它只开辟栈内存,没有栈引用的关系 2.构造方法的名称必须与类名称一致,构造方法的声明处不能有任何返回值类型的声明,不能在构造方法中使用r ...
- Java基础整理(1)
1.源代码的文件名必须与公共类(public)的类名一致,而且一个源代码文件中最多只能有一个公共类(public) 2.注释: 3种 行注释 以双斜线 // 开始 段落注释 /* 注释内容 ...
- Java基础整理之字节、数组、字符串、面向对象
一.字节(8个)8bit = 1B或1byte1024B = 1Kb 二.强制类型转换顺序及其大小顺序遵循向上转换的规则byte,short,char -> int -> long -&g ...
- java基础整理总结篇(1)
>>java数据区域,大致分以下几种 寄存器:位于cpu内部,寄存器的数量有限,所以寄存器根据需求分配.不能直接控制它. 堆栈:位于通用RAM(随机访问存储器)中,通过堆栈指针可以从处理器 ...
- 6 Java基础整理 第六-八章
1.封装 封装的目的是简化编程和增强安全性. 简化编程是指,封装可以让使用者不必了解具体类的内部实现细节,而只是要通过提供给外部访问的方法来访问类中的属性和方法 增强安全性是指,封装可以使某个属性只能 ...
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- Java基础进阶整理
Java学习笔记整理 本文档是我个人整理的,首先是想通过完成本文档更加扎实自己的基础加强对java语言的理解,然后就是想给入了门的同志们做下贡献. 当然,本文档主要是对java语言基础(当然还有很多基 ...
- 转载:[Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
原文:http://www.cnblogs.com/wang-meng/p/5898837.html 一:继承.抽象类与接口区别.访问控制(private, public, protected,默认) ...
随机推荐
- es分词器
1.默认的分词器 standard standard tokenizer:以单词边界进行切分standard token filter:什么都不做lowercase token filter:将所有字 ...
- [MySQL 5.6] information_schema.innodb_metrics
1. 概括 已关闭/打开的配置 use information_schema select count(*), status from innodb_metrics group by status; ...
- Sql批量修改帝国cms文章发布时间(需unix时间,否则会变为1970-01-01)
在迁移网站时,有时我们需要将帝国cms文章发表时间批量修改为当前时间,在帝国cms后台→系统设置→备份与恢复数据→执行sql语句: update phome_ecms_news set newstim ...
- shell脚本循环和信号
条件判断 if 条件1:then COMMAND elif 条件2:then COMMAND else COMMAND(:) : 表示pass 不执行任何命令 fi 读取用 ...
- 前端开发---HTML---介绍
阅读目录 1.标签 2.HTML目录结构 3.HTML注释 一.web1.0时代的网页制作 静态网页,所谓的静态网页就是没有与用户进行交互而仅仅供读者浏览的网页,我们当时称为“牛皮癣”网页.例如一篇Q ...
- LigerUi遮罩的两个方法
$.ligerDialog.waitting('正在查询,请稍候...'); $.ligerDialog.close();
- [php] 索引数组合并选择两数组相加
header("Content-Type:text/html;charset=utf-8");$arr1= Array ( 0 => Array ( 'pic' => ...
- Mongodb 基础 查询表达式
数据库操作 查看:show dbs; 创建:use dbname; // db.createCollection('collection_name'); 隐式创建,需要创建的数据库中有表才表示创 ...
- Linux下samba服务搭建
参考: https://www.cnblogs.com/lxyqwer/p/7271369.html https://www.cnblogs.com/liulipeng/p/3406352.html ...
- 如何比sketch和axure更方便地给原型做交互?
在快速的工作环境中,我们现在都希望在工作的各个环节中提高效率.有些产品设计师们做产品原型时,会感觉sketch或者axure添加交互的方式不够快捷.下面就提供一种解决方案. 使用工具:墨刀. 交互链接 ...