本次主要总结下java中常用的实用类。(针对我个人认为典型的写写)
1.Data类。获取本地当前时间
Data类表示时间的默认顺序为:星期、月、日、小时、分、秒、年。
当然也可以使用DataFormat的子类SimpleDataFormat来实现日期的格式化。
SimpleDataFormat有一个常用的构造方法。
public SimpleDataFormat(String pattern)
该构造方法可以用pattern指定的格式创建一个对象sdf。sdf调用
public Sting format(Data data)方法格式化时间参数data指定的时间对象,该方法根据创建sdf对象是所用的参数pattern返回一个字符串对象formatTime:
String formatTime=sdf.format(new Data());
如:对于形式:pattern=yyyy-mm-dd的,如当前时间为2013年1月26日,那么sdf.format(new Data())返回的字符串就是2013-1-26
需要注意的是,pattern中的普通字符(非时间元字符),如果是ASCII字符集中的字符,必须要用“ ' ”转义字符括起
如:pattern="'time':yyyy-mm-dd"
具体详见(p139)
2.Calendar类
Calendar类中的静态方法getInstance()可以初始化一个日历对象。例如:
Calendar calendar=Calendar.getInstance();
然后,Calendar对象可以调用方法。(具体方法参见P130)将日历翻到任何一个时间。
3.math类
math类提供提供了好多直接用的方法如求最大值,比大小...,都是经典
典型的
实例化一个NumberFormat对象,该对象调用
public final String format(double number)
方法可以格式化数字number。
NumberFormat类有如下常用方法:
public void setMaximumFractionDigits(int newValue)
public void setMinimumFractionDigits(int newValue)
public void setMaximumIntegerDigits(int newValue)
public void setMinimumIntegerDigits(int newValue)
LinkedList<E>泛型类。
java.util包中的LinkedList<E>泛型类穿件的对象一连飙结构存储数据,称LinkedList类创建的对象为链表对象。
如LinkedList<String> mylist=new LinkedList<String>();
创建一个空链表。然后mylist可以使用add(String obj)方法向链表中依次增加节点,节点中的数据时参数obj指定对象的引用。
如:mylist.add("how");
mylist.add("you");
这时链表中就有了4个节点,节点是自动连接在一起的,不需要我们去做连接。也就是说,不需要去操作安排节点中所存放的下一个上一个节点的引用。
常用方法:
public boolean add(E element) 向链表末尾添加一个新的节点,该节点中的数据是参数elememt指定的对象
public void add(int index ,E element) 向链表的指定位置添加一个新的节点,该节点中的数据是参数elememt指定的对象
public void addFirst(E element) 向链表的头添加新节点,该节点中的数据是参数elememt指定的对象。
public E get(int index) 得到链表中指定位置处节点中的对象
详见P136
遍历链表
可以使用上面的get()方法遍历链表。当然我们可以更好的使用泛型类Iterator<E>实现遍历链表。
一个链表对象可以使用iterator()方法返回一个Iterator<E>类型的对象,如果链表是“Student类型”的链表,
即链表节点中的数据是Student类创建的对象,那么该链表使用iterator()方法返回一个Iterator<Student>类型的对象,该对象使用next()方法遍历链表。
import java.util.*;
class Student {
String name;
int number;
float score;
Student(String name, int number, float score) {
this.name = name;
this.number = number;
this.score = score;
}
}
public class LinkListThree {
public static void main(String args[]) {
LinkedList mylist = new LinkedList();
Student stu_1 = new Student("赵好民", 9012, 80.0f),
stu_2 = new Student( "钱小青", 9013, 90.0f),
stu_3 = new Student("孙 力枚", 9014, 78.0f),
stu_4 = new Student( "周左右", 9015, 55.0f);
mylist.add(stu_1);
mylist.add(stu_2);
mylist.add(stu_3);
mylist.add(stu_4);
Iterator iter = mylist.iterator();
while (iter.hasNext()) {
Student te = (Student) iter.next();
System.out.println(te.name + " " + te.number + " " + te.score);
}
}
}
5.HashSet<E>泛型类
HashSet<E>泛型类在数据组织上类似于数学上的集合,可以进行“交”,"并",“差”等运算
HashSet<E>泛型类创建的对象称为集合。
如HashSet<String> set = HashSet<String>();
那么set就是一个可以存储string类型数据的集合,set可以调用add(String s)方法将 string类型的数据添加到集合中。
集合不允许有相同的元素,就是说如b已经是集合中的元素,那么再执行set.add(b)操作时无效的。
详细代码见P139
6.HashMap<k,p>泛型类
HashMap<K,V>对象采用散列表这种数据结构存储数据,习惯上称HashMap<K,V>对象为散列映射对象。散列映射用于存储键/值数据对,
允许把任何数量的键/值数据对存储在一起。键不可以发生逻辑冲突,即不要两个数据项使用相同的键,如果出现两个数据项对应相同的键,
那么,先前散列映射中的键/值对将被替换。散列映射在它需要更多的存储空间时会自动增大容量
HashMap<String,Student> hashtable= HashSet<String,Student>();创建对象。
常用方法
7.TreeSet<E>泛型类 有待思考P144
TreeSet <E>类是实现Set接口的类,它的大部分方法都是接口方法的实现。TreeSet <E>泛型类创建的对象称作树集,
例如
TreeSet <Student> tree= TreeSet <Student>();
那么,tree就是一个可以存储Student类型数据的集合,tree可以调用add(String s)方法将Student类型的数据添加到树集中,存放到树集中的对象按对象的串表示升序排列。
8.TreeMap<k,v>泛型类
TreeMap类实现了Map接口。TreeMap提供了按排序顺序存储“关键字/值”对的有效手段。应该注意的是,不像散列映射(HashMap),树映射(TreeMap)保证它的元素按照关键字升序排列http://www.cjsdn.net/Doc/JDK50/java/util/TreeMap.html
9.Stack<E>泛型类
堆栈是一种“后进先出”的数据结构,只能在一端进行输入或输出数据的操作。堆栈把第一个放入该堆栈的数据放在最底下,而把后续放入的数据放在已有数据的顶上
7.8.9三种类个人还不是太会,有待研究。
下章待续。。。。