我的Java之路(6)

本次主要总结下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);
    }
  }
}
 
 LinkedList<E>泛型类实现的接口。(参考回忆接口回调P97)
 
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三种类个人还不是太会,有待研究。
下章待续。。。。
 
 
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/yanmingup/p/2878272.html