1.Vector类
Vector类似于一个数组,但与数组相比在使用上有以下两个优点。
(1) 使用的时候无需声明上限,随着元素的增加,Vector的长度会自动增加。
(2) Vector提供额外的方法来增加、删除元素,比数组操作高效。
Vector类有三个构造函数,分别如下:
public Vector();//该方法创建一个空的Vector。 public Vector(int initialCapacity);//该方法创建一个初始长度为initialCapacity的Vector。 public Vector(int initialCapacity, int capacityIncrement);//该方法创建一个初始长度为initialCapacity的Vector,当向量需要增长时,增加capacityIncrement个元素。
Vector类中添加、删除对象的方法如下:
public void add(int index, Object element)//在index位置添加对象element。 public boolean add(Object o)//在Vector的末尾添加对象o。 public Object remove(int index)//删除index位置的对象,后面的对象依次前提。
Vector类中访问、修改对象的方法如下:
public Object get(int index)//返回index位置对象。 public Object set(int index, Object element)//修改index位置的对象为element。
其它方法:
public String toString()//将元素转换成字符串。 public int size()//返回对象的长度。
2.HashTable类
HashTable存储的是键值对 key-value
Hashtable hashTable = new Hashtable(); hashTable.put("1", "张三"); hashTable.put("2", "李四"); hashTable.put("3", "王二"); hashTable.put("4", "赵武"); System.out.println(hashTable.toString()); hashTable.put("5", "钱六"); System.out.println(hashTable.toString()); hashTable.remove("3"); System.out.println(hashTable.toString()); System.out.println(hashTable.get("2")); System.out.println(hashTable.size());
3.Enumeration接口
实现Enumeration接口的对象生成一系列元素,通过nextElement()方法一次读取下一个元素。
public boolean hasMoreElements()
测试是否还有元素。
public Object nextElement()
返回枚举的下一个元素。
Enumeration接口及其方法通常与Vector、Hashtable一起连用,用来枚举Vector中的项和Hashtable中的键名
Vector vectorScore = new Vector(); vectorScore.add("86"); vectorScore.add("90"); vectorScore.add(1, "99"); System.out.println(vectorScore.toString()); for (Enumeration enumeration = vectorScore.elements(); enumeration .hasMoreElements();) { System.out.println(enumeration.nextElement()); } Hashtable hashScore = new Hashtable(); hashScore.put("1", "86"); hashScore.put("2", "95"); hashScore.put("3", "96"); System.out.println(hashScore.toString()); for (Enumeration enumeration = hashScore.keys(); enumeration .hasMoreElements();) { String string = (String) enumeration.nextElement(); System.out.print(string + ":"); System.out.println(hashScore.get(string)); }
4.Date类和Calendar类
Date类用来指定日期和时间,其构造函数及常用方法如下:
public Date()
从当前时间构造日期时间对象。
public String toString()
转换成字符串。
public long getTime()
返回自新世纪以来的毫秒数,可以用于时间计算。
Date date = new Date(); // 返回自新世纪以来的毫秒数,可以用于时间计算 long longTime = date.getTime(); System.out.println(longTime); int sum = 0; for (int i = 0; i < 100000; i++) { sum += 1; } Date date2 = new Date(); long longTime2 = date2.getTime(); System.out.println(longTime2); System.out.println("循环花费的时间为" + (longTime2 - longTime) + "毫秒"); } Calendar calendar = Calendar.getInstance(); System.out.println("Calendar.YEAR:"+calendar.get(Calendar.YEAR)); System.out.println("Calendar.MONTH:"+calendar.get(Calendar.MONTH)); System.out.println("Calendar.DATE:"+calendar.get(Calendar.DATE)); System.out.println("Calendar.AUGUST:"+calendar.get(Calendar.AUGUST)); System.out.println("Calendar.DAY_OF_MONTH:"+calendar.get(Calendar.DAY_OF_MONTH)); System.out.println("Calendar.DAY_OF_WEEK:"+calendar.get(Calendar.DAY_OF_WEEK)); System.out.println("Calendar.DAY_OF_WEEK_IN_MONTH:"+calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH)); System.out.println("Calendar.DAY_OF_YEAR:"+calendar.get(Calendar.DAY_OF_YEAR)); System.out.println("Calendar.DECEMBER:"+calendar.get(Calendar.DECEMBER)); System.out.println("Calendar.FRIDAY:"+calendar.get(Calendar.FRIDAY)); System.out.println("Calendar.HOUR:"+calendar.get(Calendar.HOUR)); System.out.println("Calendar.HOUR_OF_DAY:"+calendar.get(Calendar.HOUR_OF_DAY)); System.out.println("Calendar.MILLISECOND:"+calendar.get(Calendar.MILLISECOND)); System.out.println("Calendar.WEEK_OF_MONTH:"+calendar.get(Calendar.WEEK_OF_MONTH)); System.out.println("Calendar.WEEK_OF_YEAR:"+calendar.get(Calendar.WEEK_OF_YEAR)); System.out.println("Calendar.WEDNESDAY:"+calendar.get(Calendar.WEDNESDAY)); System.out.println("Calendar.ZONE_OFFSET:"+calendar.get(Calendar.ZONE_OFFSET)); calendar.set(2001, 2, 23, 3, 23, 22); System.out.println(calendar.getTime()); calendar.roll(Calendar.YEAR, 1); System.out.println(calendar.getTime()); calendar.roll(Calendar.MONTH, 1); System.out.println(calendar.getTime()); calendar.roll(Calendar.DATE, 1); System.out.println(calendar.getTime());
5.String类
String类用于操作非数值型字符串,它提供了七类方法操作,分别为字符串创建、字符串长度、字符串比较、字符串检索、字符串截取、字符串运算和数据类型转换。
字符串创建
public String()
构造一个空字符串。
public String(char[] value)
使用字符数组value中的字符以构造一个字符串。
public String(String original)
使用原字符串original的拷贝以构造一个新字符串。
字符串长度
public int length()
返回字符串的长度。
字符串比较
public boolean equals(Object anObject)
比较字符串是否与anObject代表的字符串相同(区分大小写)。
public boolean equalsIgnoreCase(String anotherString)
比较字符串是否与anotherString相同(不区分大小写)。
6.数据类型转换
各种原始数据类型与String类型之间可以通过方法相互转换。
valueOf()系列的静态方法用于从其它对象(原始数据类型对象)转换成字符串。
System.out.println(String.valueOf(true)); System.out.println(String.valueOf('a')); System.out.println(String.valueOf(12)); System.out.println(String.valueOf(new Date().getTime())); float f = 9.99f; System.out.println(String.valueOf(f)); double d = 9999.9999; System.out.println(String.valueOf(d)); System.out.println(Integer.parseInt("25")); System.out.println(Float.parseFloat("10.25f")); System.out.println(Double.parseDouble("2.36")); System.out.println(Byte.parseByte("0")); short s = Short.parseShort("0"); String str = "abc"; char a = str.charAt(1); String str2 = "true"; Boolean boolean1 = Boolean.valueOf(str2);
7.Collection接口
Collection c = new ArrayList(); c.add("孙悟空"); c.add(6); System.out.println(c.size()); c.remove(6); System.out.println(c.size()); System.out.println(c.contains("孙悟空")); c.add("java"); System.out.println(c); Collection books = new HashSet(); books.add("水浒传"); books.add("西游记"); System.out.println(c.contains(books)); c.removeAll(books); System.out.println(c); c.clear(); System.out.println(c); books.retainAll(c); //books集合里只剩下c集合里也包含的元素 System.out.println(books);
8.使用Iterator接口遍历集合元素
Collection books = new HashSet(); books.add("西游记"); books.add("水浒传"); books.add("三国演义"); Iterator iterator = books.iterator(); while (iterator.hasNext()) { String book = (String) iterator.next(); Object object = (Object) iterator.next(); System.out.println(object); if (object.toString().equals("水浒传")) { //从集合中删除上一次next方法返回的元素 iterator.remove(); //使用Iterator迭代的过程中,不可修改集合元素,此处会抛异常 //books.remove(book); } book = "测试"; } System.out.println(books); }
9.使用foreach循环遍历集合元素
Collection books = new HashSet(); books.add(new String("水浒传")); books.add(new String("三国演义")); books.add(new String("西游记")); for (Object object : books) { String book = (String) object; System.out.println(book); if (book.equals("三国演义")) { //使用foreach来循环迭代访问集合元素时,该集合也不能被改变,下面的代码会平抛异常 //books.remove(object); } } System.out.println(books);
10.Set集合
Set books = new HashSet(); books.add(new String("西游记")); //Set判断两个对象相同不是使用的==运算符,而是使用的equals方法 boolean result = books.add(new String("西游记")); System.out.println(result); System.out.println(books);
11.HashSet类
HashSet集合判断两个元素相等的标准是两个对象通过equals方法比较想的,并且两个对象的hashCode方法返回值也相等。
class A { public boolean equals(Object object) { return true; } } class B { public int hashCode() { return 1; } } class C { public int hashCode() { return 2; } public boolean equals(Object object) { return true; } } public class HashSetTest { public static void main(String[] args) { // TODO Auto-generated method stub HashSet books = new HashSet(); books.add(new A()); books.add(new A()); books.add(new B()); books.add(new B()); books.add(new C()); books.add(new C()); System.out.println(books); } }