zoukankan      html  css  js  c++  java
  • SE -- 集合

     

    String类

     

    【1】String类

     

    • 字符串是一个特殊的对象
    • 字符串一旦初始化就不可以被改变
    • String str = "abc" ;  String str1 = new String("abc");
    • 如果是String str = "abc";编译器首先会在常量池中寻找有没有"abc"这个字符串,如果有则直接从常量池中取,不会new,如果常量池中没有,则会new一个,并将"abc"存放到常量池中。
       
      而String str = new String( "abc");则编译器直接new一个字符串,不会到常量池中查询。
       
      所以:
      String str1 = "abc";
      String str2 = "abc";//str1是"abc",常量池中已经有了"abc",所以str2直接从常量池中取
      String str3 = new String("abc");
      String str4 = new String("abc");
       
      System.out.println(str1 == str2);//true
      System.out.println(str2 == str3);//false
      System.out.println(str3 == str4);//false
    • String类部分方法

       

    • StingBuffer
      • 字符串的组成原理就是通过该类实现的
      • StringBuffer可以对字符串内容进行增删
      • StringBuffer 是一个容器
      • 很多方法和String相同
      • StringBuffer是可变长度
    • 特有方法

       

    • 基本数据类型对象包装类
      • 将基本数据类型封装成对象的好处:可以在对象中定义更多的功能方法操作该数据
      • 常见操作:基本数据类型与字符串之间的转换(?补充)
      • 基本数据类型对象包装类特性:
        • 定义方式(自动装箱 自动拆箱)
        • Integer x= null ; 

     

    集合

    【1】、集合类:
    1)集合类?数据和集合类的不同?
    • 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常见的一种方法。
    • 集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。
    • 不同:数组虽然也可以存储对象,但是长度是固定的,集合的长度是可变得,数组中可以存储基本数据类型,集合只能存储对象
    【2】集合框架(集合体系)
    每一个容器对数据的存储方式都有不同,这个存储方式称为数据结构
     

     

    1)collection的两个子接口
    • List(列表) 可存放重复元素,元素存取是有序的
      • list接口中常用类
      • vector:线程安全,但速度慢,已被ArrayList替代
      • arraylist:线程不安全,查询速度快
    • linkedlist:链表结构,增删速度快
    • 取出list集合中元素的方式
      • get(int index):通过脚标获取元素
      • iterator():通过迭代方法获取迭代器对象(接口型引用只能指向自己的子类对象)
        • 迭代器:取出集合中元素的一种方式
        • collection中都有iterator方法,每一个子类集合对象都具备迭代器
        • 1、迭代器在collection接口中是通用的,它替代了vector类中的enumeration(枚举)
        • 2、迭代器的next方法是自动向下取元素,要避免出现的NoSuchElementException
        • 3、迭代器的next方法返回值类型是object,需要类型转换
    Iterator it = al.iterator();
            while(it.hasNext())
            {
                sop(it.next());
            }
     
    • Set (集) 不可存放重复元素,元素存取是无序的
      • hashset : 线程不安全,存取速度快
      • treeset:线程不安全,可以对set集合中的元素进行排序
    • 问题:set集合元素的唯一性?
      • hashset 通过equals方法和hashcode方法来保证元素的唯一性
      • treeset通过compare to或者 compare方法 保证元素的唯一性。元素是以二叉树的形式存放的。
    【3】泛型
    • 特点:提高了程序的安全性、将运行期遇到的问题转移到了编译期、省去了类型强转的麻烦、泛型类的出现优化了程序设计
    • map集合
      • map集合和connection
        • map和connection在集合框架中属并列存在
        • map存储的是键值对
        • map存储元素使用put方法  collection使用add方法
        • map集合没有直接取出元素的方法,而是先转为set集合,再通过迭代获取元素
        • map集合中键要保证唯一性
      • map集合常用类
        • hashtable 线程安全、速度慢、不允许存放null值,已被hashmap替代
        • hashmap 线程不安全、速度快、允许存放null值
        • treemap 对键进行排序,排序原理与treeset相同
    【4】集合框架中的工具类
    • collections
      • 对集合进行查找
      • 取出集合中的最大值,最小值
      • 对list集合进行排序
    • arrays
      • 将数组转为list集合
      • 将数组进行排序
      • 对数组进行二分查找
    【5】新增for语句
    • for(数据类型  变量名 : 数组或集合 ){执行语句 ; }   //简化了对数据、集合的遍历
    • 函数:  
      • 返回值类型 函数名(参数类型... 形式参数) {执行语句;} //其实接收的是一个数组,可以指定实际参数个数
    拼命敲
  • 相关阅读:
    Struts系列教材 (四)- 基础
    Struts系列教材 (三)- 基础
    Struts系列教材 (一)- 基础
    Hibernate系列教材 (三十)- 注解
    网络之AFNetworking
    iOS网络学习之“远离NSURLConnection 走进NSURLSession”
    ios中常见数据存储方式以及SQLite常用的语句
    利用"仿射变换"制作“酷炫特效”
    图片滚动新闻和新闻的滚动菜单
    简易聊天窗口
  • 原文地址:https://www.cnblogs.com/wuyuwuyueping/p/9059048.html
Copyright © 2011-2022 走看看