您的位置:首页 > 编程语言 > Java开发

java 中常用的方法总结

2010-11-01 13:17 399 查看
8月1日
练习:
合理覆盖Cat数据类型的,equals()方法
Cat.java
1 覆盖 hashCode()
返回的整型值是唯一的
int hashCode()
用法:
一般使用String提供hashCode的编码 +基本数据类型
hashCode 生成原则:
1 当对象内容一致时,生成的hashCode必须是一样的
2 当对象内容不致时,生成的hashCode必须是唯一的
HashtableTest1.java
hashtable 中的key如果是自定义数据类型,那么它必须覆盖equals()和hashCode()
//考试
1 hashCode()
ArrayList *
Hashtable *
2 其他的存储方式:
LinkedList //特点:可以删除指定位置数据
练习:
向LinkedList添加:
A
B
C
D
打印出时为: DCBA
LinkedListTest.java
练习(MyQueueTest.java):
模拟一个队伍(队列),去买票一个动作
思路:
1 模拟一个队列(add)
2 模拟出列(removeXXXX)
//先买票的人,先出队列——先入先出
队伍是一个特殊数据结构,
特点:FIFO(先入先出)
HashSet //不允许重复元素
集合框架类的特点:
1 Collection 接口是一组允许重复的对象
2 Set接口继承Collection,但不允许重复使用自己内部的一个排列机制
3 List接口继承Collection,允许重复,以元素安插的次序来放置元素,不会重新排列。
4 Map接口是一组成对的键——值对象,即所持有的是key—value pairs。Map中不能有重复的key。拥有自己内部机制。
5 在集合框架类中有两大类接口:
5.1 Collection
5.2 Map
注意:集合框架类——容器,容器中存储引用数据类型
继承关系:
接口 实现 历史集合类型
Set HashSet
TreeSet
List ArrayList Vector
LinkedList Stack
Map HashMap Hashtable
TreeMap Properties

集合框架类解决的问题?
1 变长数组
2 操作的效率。
集合框架类的特点:
1 Vector
2 ArrayList *
3 Hashtable *
4 HashSet
5 Properties
集合框架类的使用:
1 声明
private Vector vec;
2 构造中实例化
vec = new vector();
3 向容器中添加数据:
vec.add();
练习:
FILOTest.java
第一个进来,最后一个出去
FILO------栈
练习:
将Student类作为Hashtable的key
StudentHash
1 Student
2 StudentHash(主类)
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
思路:
1 Properties p = System….
2 遍历p
复习:
java.lang:
String特点
常用构造:
String(byte[] bytes ) //将byte型数组转换为字符串
String(char[] ch) //将char型数组转换为字符串
String(char[] value, int offset, int count )
//将char[]转换为字符串,offset从那里开始(0)
//count(char.length) 个数
常用方法:
1 char charAt(int index)
String str = “ABC”;
Char ch = str.charAt(0);
ch ==A;
2 String concat(String str) //连接字符串==”+”号
3 boolean equalsIgnoreCase(String anotherString) //忽略大小写比较
4 byte[] getBytes() // 将字符串处理为byte[]
5 int indexOf(String str) //判断字符串所在的索引位置,如果描述的字符串不存在,返回值为-1
6 int lastIndexOf(String str) //字符串所在的最后一个索引位置,如果描述的字符串不存在,返回值为-1
7 int length() //返回字符串的长度
8 String replace(char oldChar,char newChar) //字符串替换
9 boolean startsWith(String prefix) // 判断字符串的开头,是否有匹配的字符串
10 boolean endsWitn(String prerfix) //判断字符串的结尾,是否有匹配的字符串
11 String substring(int beginIndex, int endIndex) //字符串的截取
12 char[] toCharArray() //将字符串处理为char[]
13 String toLowerCase() //将字符串处理为小写
14 String toUpperCase() //将字符串处理为大写
15 String trim() //除去字符串左右两边的空格
16 StringBuffer //初始化的容量16
构造:
StringBuffer() //初始化容量 16
StringBuffer(10) //初始化容量 10
StringBuffer(String str)
方法:
StringBuffer append(float f) // 向StirngBuffer添加内容
int capacity() // 返回容量
int length() // 返回StringBufferInt实际存储长度
StringBuilde(效率高)==StringBuffer
基本数据类型的包装包:
Byte b = new Byte();
Int Integer
char Character
int a = 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(long date) //根据用户传入的系统毫秒获取时间
方法:
toString()
格式化日期:
java.text.SimpleDateFormat
构造:
SimpleDateFormat(String str)
方法:
String format (date)
Calendar //日期,可以考虑时区
固定用法:
Calendar cal = Calendar.getInstance();
//时区
TimeZone tz = TimeZone.getTimeZone(“GMT + 8:00”);
Calendar cal = Calendar.getInstance(tz);
常用的方法:
Date getTime(); //返回当前系统时区
int get (int filed); // Calendar.静态变量
Random
构造:
Random()
方法:
int nextInt(xxxx) //返回指定范围的随机数字
需要可以变长的数组,可以提高效率
集合框架类:一组相同元素的集合。
1 Vector
构造:
Vector() //无参构造,初始化容量为10
方法:
Boolean add(E e) //向容器中存储数据
Void addElement (E obj) //向容器中存储数据
elements() //为Enumeration提供容器的地址
2 Enumeration //应用于容器元素的遍历
方法:
boolean hasMoreElements() //判断指针是否还有数据
E nextElement() //返回当前的元素,并且指针下移
ArrayList
构造:
ArrayList() //初始化容量 10
方法:
add()
iterator() //为Iterator() 提供容器的地址
Iterator: //遍历容器中的元素
方法:
boolean hasNext() // 判断指针是否还有数据
E next() //返回当前的元素,并且指针下移
Vector 与ArrayList的区别:
Vector效率低,线程同步
ArrayList 效率高,线程非同步
Hashtable //存储数据时,通过key,value的方式成对存储
//只要知道key可以一次性操作value
方法:
put(key,value) //向Hashtable容器存储数据
elements() //返回Enumeration value的地址
key() //返回Enumeration 提供key的地址
E get(key) //根据表述的key一次获得value
remove(Object key) //根据表述的key删除value
Hashtable中key是一个自定义的数据类型,那么这个自定义类型,必须合理覆盖Object;
public boolean equals(Object obj)
public int hashCode()
HashMap(同步)
LinkedList //链表——提供了方便的操作方法
方法:
addFirst()
removeFirst()
addLast()
removeLast()
继承关系:
Collection
1 Set -------不允许重复数据
2 List ---------允许重复数据
Collection list = new ArrayList(); //面向接口
Map<k , v> ------成对存储
使用官方类库方法:
1 结合面向对象的思想
1.1 这个类的作用
1.2 这个类的构造
1.3 这个类的常用方法
2 一些特殊类的固定用法
8月3日
java.io //为硬盘文件的读,写提供功能
File //在java中就代表磁盘上的一个文件
//它只可以访问这个文件的属性,并且它可以创建,删除文件,但是,它不可以控制文件中的内容
构造:
File(String pathname)
示例:
1 声明
File f;
2 构造中初始化
//f代表当前目录下的new.txt
f = new File(“new,txt”);
3 方法:
boolean createNewFile() //新建一个空文件
boolean delete() //删除这个文件
练习:
在当前目录下创建一个新的文件
1 判断这个文件是否存在
1.1 不存在,则创建一个新的文件
1.2存在,则输出这个文件的修改时间
新建项目:IO
新建类:FileTest.java
2 输出文件产相关信息
2.1 这个文件的名字
2.2 这个文件的绝对路径
I/O的基本原理:
流(stream):流是指在计算机的输入输出之间运动的数据序列。是用于I/O编程的抽象概念,表示线性的,顺序的输入和输出的数据流。
流分为两类:
输入流:代表从外设流入计算机的数据序列:输入流:源流(source stream)
输出流:代表从计算机流向外设的数据序列:输出流:目的流(sink stream)
在java中流的分类:
主体是程序
1 字节流---------代表传输的数据类型为byte类型,1字节
1.1 InputStream //可以从磁盘中读取文件
1.2 OutputStream //可以向磁盘中的文件写入内容
2 字符流---------代表传输的数据类型为char类型,2字节
2.1 Reader(输入流):可以从磁盘中读取文件
2.2 Writer(输出流):可以向磁盘中的文件写入内容
使用字节流:
练习:ByteStream中实现文件的写入,读取
1 使用FileOutputStream 向hello.txt中写入内容“MyFirstOutput”
1.1 FileOutputStream 的构造:
FileOutputStream(File file)
FileOutputStream(File file, Boolean append)
//append参数:为true,将会以追加模式进行写操作
false,将会覆盖原有文件
1.2 方法:
void write(byte[] b)
void close() //释放资源
2 使用FileInputStream()
2.1 构造
2.2 方法
int read(byte[] b)
//将读出的内容存储到byte[] 中,并且返回数组的长度
操作资源三大步:
打开
操作(读,写)
关闭
ByteStream.java
练习:使用java实现copy指令:
MyCopy
要求:java MyCopy args1 args2
结果:将args1中的内容copy到args2
思路:
1、从args1中读取内容
2、将读取的内容写入到args2
书写:
1、考虑需要的属性
2、构造初始化属性
3、方法实现copy
int read() //无参read方法 返回byte型数据
int read(byte[ ] b ) //返回读取内容的长度
8月5日
字符流:char
FileReader
构造:
FileReader(String filename) // 以参数中的文件名,创建输入字符流
FileWriter
练习:
FileRW.java
使用字符流实现文件的读写
注:程序结构参考ByteStream
字符流的特点:
由于字符流在write()实现时,使用了缓冲机制,所以在write()完毕后,必须同步缓冲区。
调用:
flush();
或者
close();
System.in //可以接收用户在终端的输入
int read() //返回用户在程序运行过程中的键盘输入,为此输入的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 中的标准输入流
ReadTest.java
8月6日
1 将对象存入到文件中(序列化存储)*
ObjectSave.java
手工实现步骤:
将User数据类型的构造,封装,进行编写
使用DataxxxStream进行读写;
将User对象的数据进行拆分(setxxx,getxxx)
2 序列化存储实现:
ObjectInputStream
ObjectOutputStream
//对于对象的读和写
方法:
Object readObject()
void writeObject(Object obj)
注意:读或写的对象,必须实现Serializable (序列化)接口
示例:
//这个对象支持了序列化存储
//可以使用readObject () || writeObject () 方法了
class User implements Serializable
{
}
ObjectSerializable.java

回顾:java.io
1 File //特点:代表磁盘的文件,只可以访问文件的属性
2 流的概念:只要计算机中线性的,顺序的数据输入,输出
输入流:
输出流:
java的角度:
字节流:
InputStream //读取内容
OutputStream //写入内容
特点:基本数据类型byte
字符流:
Writer:
Reader:
特点:基本数据类型char
3 字节流和字符流的应用:
字节流:
FileInputStream
FileOutputStream
字符流:
FileWriter
FileReader
4 流链(包装流)
特点:
增加I/O的操作效率。(分配了一段内存-----缓冲区)
提供名种基本数据类型和特殊类型的操作机制
字节流:
1 BufferedInputStream
BufferedOutputStream //特点:提高I/O操作效率
2 DataInputStream
DataOutputStream //特点:提供基本,特殊类型操作
字符流:
1 BufferedReader //特点:readLine();
BufferedWriter
5 序列化存储:
特点:将对象进行存储,读取
1 ObjectInputStream
ObjectOutputStream
注意:要序列化存储对象必须实现:Serializable 接口
大练习:
使用
java.lang
java.util
java.io
实现一个用户的管理查询系统
功能:
1 添加用户
2 浏览用户
3 删除用户
4 查找用户
5 退出程序
见UserManager文件夹
解决数据的累加问题:
1 程序一运行的时候,就将文件中的所有数据保存在内存中。
EOFException //文件指针已经到末尾时,还要继续读取
User user
User = (User)is.readObject();
While(user != null)
{
array.add(user);
ois.readObject();
}
ArrayList:
int size() //可以返回ArrayList中的元素个数
E get(int index) //根据用户传入的索引值,返回所存储数据
remove(int index) //删除指定位置的元素
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: