Java集合类

1.   集合类:集合类用于存储一组对象

2.   输入一串数字打印出这串数字的和

public class TestVector {
   public static void main(String[] args) {
      Vector v = new Vector();
      System.out.println("enter number :");
      while (true) {
         int b = 0;
         try {
            b = System.in.read();
         } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
         }
         if(b == '\r' || b == '\n'){
            break;
         }else{
            int num = b - '0';//通过相减得到实际的数字
            v.addElement(new Integer(num));
         }
 
      }
      int sum = 0;
      Enumeration e =v.elements();
      while(e.hasMoreElements()){
         sum += (Integer)e.nextElement();
      }
      System.out.println(sum);
  
   }
 
}

3.   VectorArrayList非常相似,使用ArrayList实现上面的功能,注意两者的区别是是不是线程同步的,Vector是线程安全的,但是执行效率低,ArrayList是线程不同步的执行效率相对较高:

publicclass TestArrayList {
   publicstaticvoid main(String[] args) {
      ArrayList v = new ArrayList();
      System.out.println("enter number :");
      while (true) {
         int b = 0;
         try {
            b = System.in.read();
         } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
         }
         if(b == '\r' || b == '\n'){
            break;
         }else{
            int num = b - '0';//通过相减得到实际的数字
            v.add(new Integer(num));
         }
 
      }
      int sum = 0;
      Iterator e = v.iterator();
      while(e.hasNext()){
         sum += (Integer)e.next();
      }
      System.out.println(sum);
  
   }
 
}

4.   各种集合对象接口的区别


5.   Collections实现对集合类的排序,该类是直接继承的Object

ArrayList list = new ArrayList();
      list.add(1);
      list.add(3);
      list.add(2);
      System.out.println(list.toString());
      Collections.sort(list);
      System.out.println(list.toString());


6.   Hashtable类存储键值对,Hashtable中不能有相同的关键字,注意作为Hashtable类的关键字的类必须覆盖equls方法和hashCode方法;注意这两个方法是给Hashtableget()方法使用的;

键值对象:

publicclass MyKey {
   private String name;
   privateintage;
  
   public MyKey(String name, int age) {
      this.name = name;
      this.age = age;
   }
   @Override
   publicint hashCode() {
      finalint prime = 31;
      int result = 1;
      result = prime * result + age;
      result = prime * result + ((name == null) ? 0 : name.hashCode());
      return result;
   }
   @Override
   publicboolean equals(Object obj) {
      if (this == obj)
         returntrue;
      if (obj == null)
         returnfalse;
      if (getClass() != obj.getClass())
         returnfalse;
      MyKey other = (MyKey) obj;
      if (age != other.age)
         returnfalse;
      if (name == null) {
         if (other.name != null)
            returnfalse;
      } elseif (!name.equals(other.name))
         returnfalse;
      returntrue;
   }
   @Override
   public String toString() {
      return"MyKey [name=" + name + ",age=" + age + "]";
   }
 
 
}

测试类:

publicclass HashtableTest {
   publicstaticvoid main(String[] args) {
      Hashtable h = new Hashtable();
      h.put(new MyKey("zhangsan", 12), new Integer(1));
      h.put(new MyKey("lisi", 13), new Integer(2));
      h.put(new MyKey("wangwu", 12), new Integer(3));
 
      Enumeration e = h.keys();
      while (e.hasMoreElements()) {
         MyKey key = (MyKey) e.nextElement();
         System.out.print(key + " = " + h.get(key));
         System.out.println();
      }
      System.out.println(h.get(new MyKey("zhangsan",12)));// 如果没有重写equals和hashCode方法则返回值为null
   }
 
}

7.   properties是Hashtable类的子类

8.   System类中的所有的方法都是静态的;

9.   处理日期和时间的类:Calendar

publicclass TestCalendar {
   publicstaticvoid main(String[] args) {
      Calendar c = Calendar.getInstance();
      System.out.println(c.get(c.YEAR) + "年" + c.get(c.MONTH) + "月"
            + c.get(c.DAY_OF_MONTH) + "日 " + c.get(c.HOUR) + " : "
            + c.get(c.MINUTE) + " : " + c.get(c.SECOND));
     
      c.add(c.DAY_OF_YEAR, 315);
      System.out.println("315 天后的时间:");
      System.out.println(c.get(c.YEAR) + "年" + c.get(c.MONTH) + "月"
            + c.get(c.DAY_OF_MONTH) + "日 " + c.get(c.HOUR) + " : "
            + c.get(c.MINUTE) + " : " + c.get(c.SECOND));
   }
}


10.2012-05-01格式的日期转换成20120501日格式的日期:

   

SimpleDateFormat s1 = new SimpleDateFormat("yyyy-MM-dd");
      SimpleDateFormat s2 = new SimpleDateFormat("yyyy年MM月dd日");
      Date d;
      try {
         d = s1.parse("2012-05-01");
         System.out.println(s2.format(d));
      } catch (ParseException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }

11.在指定的时间之后运行一段指定的代码:

class MyTimeTask extends TimerTask{
         private Timer tm;
         public MyTimeTask(Timer tm){
            this.tm = tm;
         }
 
         publicvoid run() {
 
            try {
                Runtime.getRuntime().exec("calc.exe");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            tm.cancel();//结束任务线程的代码
           
         }
        
      }
      Timer timer = new Timer();
      timer.schedule(new MyTimeTask(timer), 20000); 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值