Java高级应用

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);
    }
}



本文出自 “优赛工作室” 博客,谢绝转载!

你可能感兴趣的:(element)