黑马程序员 _集合框架,以及泛型

来源:互联网 发布:qqiphone6s在线软件 编辑:程序博客网 时间:2024/05/21 18:50

 

 

 ------- android培训java培训、期待与您交流! ----------

 

          

1、StringBuffer 线程安全,线程同步     StringBuilder 线程不同步,运行效率比StringBuffer高

2、程序升级三个要素:提高效率、简化书写、提高安全性

  以后开发建议使用StringBuilder
3、String s1="abc";  //s1 是一个类的类型变量, “abc”是一个对象 ;被引号引的都是对象
   String s2=new String("abc");   // s2 在内存中有两个对象

4、Integer a=128; Integer b=128;    a==b  false
 

  Integer m=127; Integer n=127;    m==n  true  //因为m和n指向了同一个Integer对象。因为当数值在byte范围内,对于新特性,

如果  该数值已经存在,则不会在开辟新的空间。

5、排序时,当主要条件相同是,一定判断一下次要条件

 TreeSet :底层数据结构是二叉树,保证元素唯一性的依据。cpmpartTo方法return 0
 
 TreeSet排序的两种方式:
 

  (1)比较的元素都实现comparable 接口,让元素自身具有比较性

  (2)定义比较器。

  (3)当两种方式都存在是,以比较器为主。

6、for(Iterator it=al.iterator();it.hasNext();){
     

            sop(it.next());
  }
     源码中的写法;这种写法可以减少内存的占用量

7、List:元素时有序的,元素可以重复,因为该集合体系有索引
        ArrayList :底层的数据结构使用的是 数组。特点:查询速度很快。但是增删稍慢    线程不同步

 LinkedList:底层使用的是  链表数据结构。 特点:增删速度快,查询稍慢

 Vector:底层的数据结构使用的是数组。     线程同步。被ArrayList替代了

  Set:HashSet:底层的数据结构使用的是 哈希表。

8、一个对象存放到对象集合中一般需要复写hashCode和 equals方法
   public int hashCode(){
      

           return name.hashCode()+age*39; 
   }
  public equals(Object obj){
     

           if(!(obj instanceof Student))return false;
                 Student stu=(Student)obj;
    

         return this.name.equals(stu.name)  && this.age==stu.age;
  }

9、泛型类
  什么时候定义泛型类?
   当类中要操作的引用数据类型不确定的时候,定义泛型来完成扩展。
  class Utils<Q>
 {
   private QQ q;
   public void setObject(QQ q){this.q=q;}
   Public void getObject(){return q;}
}
10、泛型方法
  class Demo<U>
 {
   public void show(U u){
     System.out.println(u);
   }
 }

 (2)泛型方法 ,范围更广    注意:泛型的位置的放置
  class Demo<U>
 {
     public void print(U u){
         System.out.println(u);
     }

     public <T> void show(T t){
      System.out.println(t);
    }

    //泛型的静态方法
    public static <W> void(W w){
       System.out.println(w);
    }  
 }
11、泛型定义在接口上
  interface Inter<T>{
   void show(T t);
 }
 (1)第一种:
  class Demo implments Inter<String>{
    public void show(String s){}
 }
 (2)第二种:
  class Demo<T> implements Inter<T>
  {
    public void show(T t){}
  }

12、HashMap和Hashtable的区别:
   (1)Hashtable   底层是哈希表数据结构  。不可以存入null键null值,该集合是线程同步的  jdk 1.0  效率低
  

  (2)HashMap    底层是哈希表数据结构  。允许使用null值和null键,该集合是不同步的       jdk 1.2  效率高
 

   (3)TreeMap 底层是二叉树数据结构

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

 ------- android培训java培训、期待与您交流! ----------  

详细请查看:http://edu.csdn.net/heima/

原创粉丝点击