首页 > 代码库 > 16.数组、类集框架

16.数组、类集框架

1.数组定义方法
  静态声明法
         int arr[]={1,1,2,3};
  动态声明法
         int arr[]=new int[10];//创建一个arr长度为10的 
2.类集框架
   2.1定义
        JDK的一组类和接口,位于java.util包中,主要用于存储和管理对象。
        和数组相比:容量自动扩充,存储方式多。
   2.2种类
        存储数据方式:集合(Set,无序,不允许重复元素)、列表(List集合中对象按照索引位置排序,可以有重复对象)、映射(Map,一一对应)

                                            框架主题结构
   2.3使用  
        Collection接口方法:
        
        1)list—Arraylist
              ArrayList<String> arrayList = new ArrayList<String>();   //只能存放String;
              <String>是类型参数。
              方法:
              arrayList.add("a");   //加入a
              arrayList.get(1);      //取出arrayList的第一个对象
              arrayList.size();       //获取arrayList长度

        2) Set和HashSet(Collection子接口,方法同Collection)
             生成String类型HashSet对象:HashSet<String> hashSet = new HashSet<String>();
             集合无序,遍历的一种方法——迭代器
             迭代器生成:调用set对象的Iterator方法 ,会生成一个迭代器对象,该对象用于遍历整个Set。Collection是Iterator子接口。
             生成迭代器对象:Iterator<String> it = set.iterator();,迭生成代器对象就可以把set中的元素一个一个取出来,游标往后移动。
        
        Lterator中的方法
        hasNext() :返回值是布尔,判断迭代器中还有没有下一个元素,有返回真。
        next():取出下一个元素,游标往下移动1位; 

        Map与HashMap:
               对象建立:HashMap<String,String> hashMap = new HashMap<String,String>();   //存放键值对
       向上转型为map类型:Map<String,String> map = hashMap;
               往map存键值对:map.put("1","a");
               获得键值对数量:int i = map.size();
               得到map键对应的值:String s = map.get("3");
3.equals函数
   3.1位置
       在object类中,object又是所有类的父类。所以所有的类都继承equals方法。
   3.2作用
        “==”的作用是判个两个引用是否指向堆内存中的同一块地址
           equals用来比较两个内容是否相等

           符合内容相同(大多数情况下)条件:
              1)对象类型相同(同一个类生成,可以使用instanceof操作符进行比较);
              2)两个对象的成员变量和值是否相同。

   3.3复写equals函数方法
      object里继承的equals并不适合所有情况,原则上是复写。
       public boolean equals(object obj)
       {
           if(this == obj)  //判断是不是指向堆内存中同一个对象,同一个对象内容一定相同,不用判断。
           {
             return ture;
           }
              boolean b = obj instanceof  Uesr;//判断前面对象是不是后面的类型。同一个类
             if(b)
             {
                User u = (Uesr)obj;
               if(this.age == u.age && this.name.equals(u.name))  //name来调用equals,String复写好,判断值是不是相同
               return ture;
             }
             else
             {
              return fulse;
             }   
          else
          {
            return fulse;
           }   
        }
  需要注意的是: 比较成员变量,基本数据类型用“==”比,引用数据对象(数组、字符串)用equals
4.hashCode()方法
   和equals相关联。equals相同,则生成的hash码也就一样,在Object类中。
5.toString()方法
   对象转成字符串,可以复写输出字符串。在Object类中
   在打印时候首先调用toString方法,再把所返回的字符串打印出来。

     我们可以复写打印出自己对象的情况。











来自为知笔记(Wiz)


16.数组、类集框架