java 中常用的方法总结文档格式.docx
《java 中常用的方法总结文档格式.docx》由会员分享,可在线阅读,更多相关《java 中常用的方法总结文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
拥有自己内部机制。
5在集合框架类中有两大类接口:
5.1Collection
5.2Map
注意:
集合框架类——容器,容器中存储引用数据类型
继承关系:
接口实现历史集合类型
SetHashSet
TreeSet
ListArrayListVector
LinkedListStack
MapHashMapHashtable
TreeMapProperties
集合框架类解决的问题?
1变长数组
2操作的效率。
1Vector
2ArrayList*
3Hashtable*
4HashSet
5Properties
集合框架类的使用:
1声明
privateVectorvec;
2构造中实例化
vec=newvector();
3向容器中添加数据:
vec.add();
FILOTest.java
第一个进来,最后一个出去
FILO------栈
将Student类作为Hashtable的key
StudentHash
1Student
2StudentHash(主类)
StudentHash.java
8月2日
使用HashMap进行数据的存储,与遍历
.keySet()
//返回key的集合(Set)
.values()
//返回value的列表(ArrayList)
HashMapTest.java
HashMap与Hashtable的区别:
Hashtable是非同步的(效率高)
HashMap是同步的(效率低)
获得系统java的相关的环境变量:
System.getProperties();
//可以返回
Properties数据类型(是Map的子类),内容为系统的全部环境变量
打印输出系统中全部的环境变量:
//2了解Properties,还可以与文件系统交互
PropertiesTest.java
1Propertiesp=System….
2遍历p
复习:
java.lang:
String特点
常用构造:
String(byte[]bytes)//将byte型数组转换为字符串
String(char[]ch)
//将char型数组转换为字符串
String(char[]value,intoffset,intcount)
//将char[]转换为字符串,offset从那里开始(0)
//count(char.length)个数
常用方法:
1charcharAt(intindex)
Stringstr=“ABC”;
Charch=str.charAt(0);
ch==A;
2Stringconcat(Stringstr)
//连接字符串==”+”号
3booleanequalsIgnoreCase(StringanotherString)
//忽略大小写比较
4byte[]getBytes()
//将字符串处理为byte[]
5int
indexOf(Stringstr)
//判断字符串所在的索引位置,如果描述的字符串不存在,返回值为-1
6intlastIndexOf(Stringstr)
//字符串所在的最后一个索引位置,如果描述的字符串不存在,返回值为-1
7int
length()
//返回字符串的长度
8Stringreplace(charoldChar,charnewChar)
//字符串替换
9boolean
startsWith(Stringprefix)
//判断字符串的开头,是否有匹配的字符串
10boolean
endsWitn(Stringprerfix)
//判断字符串的结尾,是否有匹配的字符串
11Stringsubstring(intbeginIndex,intendIndex)//字符串的截取
12char[]
toCharArray()
//将字符串处理为char[]
13StringtoLowerCase()
//将字符串处理为小写
14StringtoUpperCase()
//将字符串处理为大写
15Stringtrim()
//除去字符串左右两边的空格
16StringBuffer
//初始化的容量16
构造:
StringBuffer()
//初始化容量16
StringBuffer(10)
//初始化容量10
StringBuffer(Stringstr)
方法:
StringBuffer
append(floatf)
//向StirngBuffer添加内容
capacity()
//返回容量
//返回StringBufferInt实际存储长度
StringBuilde(效率高)==StringBuffer
基本数据类型的包装包:
Byteb=newByte();
Int
Integer
char
Character
inta=Integer.parseInt(“11”);
System常用的方法:
System.gc();
System.exit(0);
//退出java程序,0代表正常退出,非0代表异常退出
System.arraycopy()
//数组的拷贝
System.currentTimeMillis()
//系统毫秒(1970)
System.getProperties()
//系统环境变量
Math算术类:
Math.abs()
//绝对值
max
min
random
//1.0----0.0的随机值
round
//四舍五入
Runtime
//获得系统运行环境,通常用于java调用
//第三方应用程序(.exe)
.exec(“”)
java.util
Date
//获得系统时间,不考虑时区
Date()
//获得系统时间
Date(longdate)
//根据用户传入的系统毫秒获取时间
toString()
格式化日期:
java.text.SimpleDateFormat
SimpleDateFormat(Stringstr)
Stringformat(date)
Calendar
//日期,可以考虑时区
固定用法:
Calendarcal=Calendar.getInstance();
//时区
TimeZonetz=TimeZone.getTimeZone(“GMT+8:
00”);
Calendarcal=Calendar.getInstance(tz);
常用的方法:
DategetTime();
//返回当前系统时区
intget(intfiled);
//Calendar.静态变量
Random
Random()
intnextInt(xxxx)
//返回指定范围的随机数字
需要可以变长的数组,可以提高效率
集合框架类:
一组相同元素的集合。
1Vector
Vector()//无参构造,初始化容量为10
Booleanadd(E
e)
//向容器中存储数据
VoidaddElement(Eobj)
elements()
//为Enumeration提供容器的地址
2Enumeration//应用于容器元素的遍历
booleanhasMoreElements()
//判断指针是否还有数据
EnextElement()//返回当前的元素,并且指针下移
ArrayList
ArrayList()//初始化容量10
add()
iterator()
//为Iterator()提供容器的地址
Iterator:
//遍历容器中的元素
booleanhasNext()
//判断指针是否还有数据
Enext()//返回当前的元素,并且指针下移
Vector与ArrayList的区别:
Vector效率低,线程同步
ArrayList效率高,线程非同步
Hashtable
//存储数据时,通过key,value的方式成对存储
//只要知道key可以一次性操作value
put(key,value)
//向Hashtable容器存储数据
//返回Enumerationvalue的地址
key()
//返回Enumeration提供key的地址
Eget(key)
//根据表述的key一次获得value
remove(Objectkey)//根据表述的key删除value
Hashtable中key是一个自定义的数据类型,那么这个自定义类型,必须合理覆盖Object;
publicbooleanequals(Objectobj)
publicinthashCode()
HashMap(同步)
//链表——提供了方便的操作方法
addFirst()
removeFirst()
addLast()
removeLast()
Collection
1Set-------不允许重复数据
2List---------允许重复数据
Collectionlist=newArrayList();
//面向接口
Map<
k,v>
------成对存储
使用官方类库方法:
1结合面向对象的思想
1.1这个类的作用
1.2这个类的构造
1.3这个类的常用方法
2一些特殊类的固定用法
8月3日
java.io
//为硬盘文件的读,写提供功能
File
//在java中就代表磁盘上的一个文件
//它只可以访问这个文件的属性,并且它可以创建,删除文件,但是,它不可以控制文件中的内容
File(Stringpathname)
示例:
Filef;
2构造中初始化
//f代表当前目录下的new.txt
f=newFile(“new,txt”);
3方法:
booleancreateNewFile()
//新建一个空文件
booleandelete()
//删除这个文件
在当前目录下创建一个新的文件
1判断这个文件是否存在
1.1不存在,则创建一个新的文件
1.2存在,则输出这个文件的修改时间
新建项目:
IO
新建类:
FileTest.java
2输出文件产相关信息
2.1这个文件的名字
2.2这个文件的绝对路径
I/O的基本原理:
流(stream):
流是指在计算机的输入输出之间运动的数据序列。
是用于I/O编程的抽象概念,表示线性的,顺序的输入和输出的数据流。
流分为两类:
输入流:
代表从外设流入计算机的数据序列:
源流(sourcestream)
输出流:
代表从计算机流向外设的数据序列:
目的流(sinkstream)
在java中流的分类:
主体是程序
1字节流---------代表传输的数据类型为byte类型,1字节
1.1InputStream//可以从磁盘中读取文件
1.2OutputStream//可以向磁盘中的文件写入内容
2字符流---------代表传输的数据类型为char类型,2字节
2.1Reader(输入流):
可以从磁盘中读取文件
2.2Writer(输出流):
可以向磁盘中的文件写入内容
使用字节流:
ByteStream中实现文件的写入,读取
1使用FileOutputStream向hello.txt中写入内容“MyFirstOutput”
1.1FileOutputStream的构造:
FileOutputStream(Filefile)
FileOutputStream(Filefile,Booleanappend)
//append参数:
为true,将会以追加模式进行写操作
false,将会覆盖原有文件
1.2方法:
voidwrite(byte[]b)
voidclose()
//释放资源
2使用FileInputStream()
2.1构造
2.2方法
intread(byte[]b)
//将读出的内容存储到byte[]中,并且返回数组的长度
操作资源三大步:
打开
操作(读,写)
关闭
ByteStream.java
使用java实现copy指令:
MyCopy
要求:
javaMyCopyargs1args2
结果:
将args1中的内容copy到args2
1、从args1中读取内容
2、将读取的内容写入到args2
书写:
1、考虑需要的属性
2、构造初始化属性
3、方法实现copy
intread()//无参read方法返回byte型数据
intread(byte[]b)//返回读取内容的长度
8月5日
字符流:
char
FileReader
FileReader(Stringfilename)
//以参数中的文件名,创建输入字符流
FileWriter
FileRW.java
使用字符流实现文件的读写
注:
程序结构参考ByteStream
字符流的特点:
由于字符流在write()实现时,使用了缓冲机制,所以在write()完毕后,必须同步缓冲区。
调用:
flush();
或者
close();
System.in
//可以接收用户在终端的输入
intread()//返回用户在程序运行过程中的键盘输入,为此输入的ascii码
System.in.read();
//程序会阻塞状态,只有当用户输入字符,并且按下“回车键”程序,才会继续运行
ReadTest.java
流链:
目的:
在实际开发中,提高基本的字节流或者字符流的读取效率(读写效率)和更方便的操作机制(除了char,byte,String),还可以操作其他数据类型。
一个程序很少只用一个流类来处理数据,通常都有使用一系列流类叫流链来处理。
字节流:
BufferedInputStream
BufferdeOutputStream
//特点:
为基本的I/O操作,提供缓存区域
//提高字节流的操作效率
BufferedTest.java
DataInputStream
DataOutputStream
为各种基本,特殊数据类型提供操作方式
DataTest.java
输入流量
DataSource-à
FileInputStream-à
BufferedInputStream--à
DataInputStream-à
Program
输出流量
Program-à
DataOutputStream-à
BufferedOutputStream-à
FileOutputStreamà
Datasink
字符流版本的,MyCopy
MyCharCopy.java
字节流的流链
字符流的流链
BufferedReader
BufferedWriter
//提高I/O操作效率
BufferedRW.java
Alt+shift+z
//自动写出异常
System.in.read();
System.in//java中的标准输入流
8月6日
1将对象存入到文件中(序列化存储)*
ObjectSave.java
手工实现步骤:
将User数据类型的构造,封装,进行编写
使用DataxxxStream进行读写;
将User对象的数据进行拆分(setxxx,getxxx)
2序列化存储实现:
ObjectInputStream
ObjectOutputStream
//对于对象的读和写
ObjectreadObject()
voidwriteObject(Objectobj)
读或写的对象,必须实现Serializable(序列化)接口
//这个对象支持了序列化存储
//可以使用readObject()||writeObject()方法了
classUserimplementsSerializable
{
}
ObjectSerializable.java
回顾:
java.io
1File//特点:
代表磁盘的文件,只可以访问文件的属性
2流的概念:
只要计算机中线性的,顺序的数据输入,输出
java的角度:
InputStream
//读取内容
OutputStream
//写入内容
基本数据类型byte
Writer:
Reader:
基本数据类型char
3字节流和字符流的应用:
FileInputStream
FileOutputStream
4流链(包装流)
增加I/O的操作效率。
(分配了一段内存-----缓冲区)
提供名种基本数据类型和特殊类型的操作机制
1BufferedInputStream
BufferedOutputStream//特点:
提高I/O操作效率
2DataInputStream
DataOutputStream//特点:
提供基本,特殊类型操作
1BufferedReader
readLine();
5序列化存储:
将对象进行存储,读取
1ObjectInputStream
要序列化存储对象必须实现:
Serializable接口
大练习:
使用
java.lang
实现一个用户的管理查询系统
功能:
1添加用户
2浏览用户
3删除用户
4查找用户
5退出程序
见UserManager文件夹
解决数据的累加问题:
1程序一运行的时候,就将文件中的所有数据保存在内存中。
EOFException//文件指针已经到末尾时,还要继续读取
Useruser
User=(User)is.readObject();
While(user!
=nul