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,默认) ...
随机推荐
- java读取配置文件的信息
1. 首先,工程结构如下: 注:a. 蓝色标注的两个文件是和com包平级的,都在src下.EnnNotificationPushProxy.ini是这个工程的配置文件,log4j.properties ...
- c语言指针应用
指针变量指向数组元素: #import <stdio.h> int main() { int a[10]={1,2,3,4,5,6,7,8,9,0}; int *p; p=a; for ( ...
- 链接服务器XXX的OLE DB提供程序“SQLNCLI”无法启动分布式事务“
错误消息msg 7391 16级状态1行1表示 “Msg 7391,Level 16,State 2,Line 1 无法执行该操作,因为链接服务器XXX的OLE DB提供程序“SQLNCLI”无法启动 ...
- 20170725 Python 必须使用的Url编码
-- 1 原因:在进行API 调用传参时,如果出现了和区分参数标识一样的特殊字符,那么就需要编码来作用 或者,传递的参数有敏感数据. 我的目的: Python开发的接口,C#调用传递参数 先用C# 进 ...
- 终极大招——Scrapy框架
Scrapy框架 Scrapy 是一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途 ...
- 003-linux命令-文件和目录、查看文件内容-文本处理
文本处理 cat file1|command(sed,grep,awk,) > result.txt 合并一个文件的详细说明文本,并将简介写入一个新文件中 cat file1|command(s ...
- SQLite数据库管理工具(SQLiteStudio)v3.1.1
http://www.pc6.com/softview/SoftView_86552.html
- file相关方法
File文件,getAbsolutePath方法 public String getAbsolutePath() 该方法的作用是获得当前文件或文件夹的绝对路径.例如c:\test\1.t则返回c:\t ...
- 网络编程——socket编程
一.客户端/服务端架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网企业处处是C/S架构 C/S架构与socket的关系:学习socket就是为了完成C/S架构的开发 二.OSI七层 一个 ...
- IntelliJ IDEA 17 本地LicenseServer激活
注意:此方法适用于Idea v2017.2.x 版本及以前版本. IntelliJ IDEA及破解包下载地址:百度网盘 密码:hlko 一.将IntelliJIDEALicenseServer.e ...