1、高级软件人才实作培训专家高级软件人才实作培训专家!Java Java 预热班讲义预热班讲义讲师:讲师:毕向东高级软件人才实作培训专家高级软件人才实作培训专家!String类l字符串是一个特殊的对象。l字符串一旦初始化就不可以被改变。lString str =“abc”;lString str1=new String(“abc”);有什么区别?高级软件人才实作培训专家高级软件人才实作培训专家!String类部分方法lchar charAt(int index)lint length()lchar toCharArray();lint indexOf(String str);lboolean en
2、dsWith(String str);lString split(String reg);lString substring(int index);lString(char arr);高级软件人才实作培训专家高级软件人才实作培训专家!练习l子串在整串中出现的次数。l两个字符串的最大相同子串。l对字符串中字符进行自然顺序排序。高级软件人才实作培训专家高级软件人才实作培训专家!StringBufferl字符串的组成原理就是通过该类实现的。lStringBuffer可以对字符串内容进行增删。lStringBuffer是一个容器。l很多方法与String相同。lStingBuffer是可变长度的。高级
3、软件人才实作培训专家高级软件人才实作培训专家!StringBuffer特有方法lStringBuffer append(int x);lStringBuffer delete(int start,int end);lStringBuffer insert(int index,String str);lStringBuffer reverse();lJDK1.5出现一个StringBuilder,区别是StringBuffer是同步的,StringBuilder是非同步的。高级软件人才实作培训专家高级软件人才实作培训专家!基本数据类型对象包装类l将基本数据类型封装成对象的好处在于可以在对象中定义
4、更多的功能方法操作该数据。l常用的操作之一:用于基本数据类型与字符串之间的转换。l例:Integer的parseInt方法,intValue方法。l例程高级软件人才实作培训专家高级软件人才实作培训专家!基本数据类型对象包装类新特性lJDK1.5以后,简化了定义方式。Integer x=new Integer(4);可以直接写成Integer x=4;/自动装箱。x =x+5;/自动拆箱。通过intValue方法。l需要注意:在使用时,Integer x=null;上面的代码就会出现NullPointerException。高级软件人才实作培训专家高级软件人才实作培训专家!集合类l为什么出现集合
5、类?面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。l数组和集合类同是容器,有何不同?数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象。l集合类的特点集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。高级软件人才实作培训专家高级软件人才实作培训专家!集合框架的构成及分类高级软件人才实作培训专家高级软件人才实作培训专家!集合框架中的常用接口Collection接口有两个子接口:List(列表),Set(集)List:可存放重复元素,元素存取是有序的。S
6、et:不可以存放重复元素,元素存取是无序的。高级软件人才实作培训专家高级软件人才实作培训专家!List接口中常用类lVector:线程安全,但速度慢,已被ArrayList替代。lArrayList:线程不安全,查询速度快。lLinkedList:链表结构,增删速度快。取出LIst集合中元素的方式:get(int index):通过脚标获取元素。iterator():通过迭代方法获取迭代器对象。高级软件人才实作培训专家高级软件人才实作培训专家!迭代l迭代是取出集合中元素的一种方式。l因为Collection中有iterator方法,所以每一个子类集合对象都具备迭代器。l用法:Iterator
7、iter=l.iterator();while(iter.hasNext()System.out.println(iter.next();for(Iterator iter=iterator();iter.hasNext();)System.out.println(iter.next();高级软件人才实作培训专家高级软件人才实作培训专家!迭代注意事项l迭代器在Collcection接口中是通用的,它替代了Vector类中的Enumeration(枚举)。l迭代器的next方法是自动向下取元素,要避免出现NoSuchElementException。l迭代器的next方法返回值类型是Object
8、,所以要记得类型转换。思考:为什么next方法的返回类型是Object的呢?高级软件人才实作培训专家高级软件人才实作培训专家!Set接口中常用的类lHashSet:线程不安全,存取速度快。它是如何保证元素唯一性的呢?lTreeSet:线程不安全,可以对Set集合中的 元素进行排序。它的排序是如何进行的呢?高级软件人才实作培训专家高级软件人才实作培训专家!Set集合元素唯一性原因lHashSet:通过equals方法和hashCode 方法来保证元素的唯一性。lTreeSet:通过compareTo或者compare 方法中的来保证元素的唯一 性。元素是以二叉树的形式存 放的。高级软件人才实作培
9、训专家高级软件人才实作培训专家!泛型lJDK1.5以后出现的机制l泛型出现的原因l泛型出现的好处l泛型的书写格式l自定义泛型类高级软件人才实作培训专家高级软件人才实作培训专家!泛型的特点l提高了程序的安全性l将运行期遇到的问题转移到了编译期l省去了类型强转的麻烦l泛型类的出现优化了程序设计例程高级软件人才实作培训专家高级软件人才实作培训专家!Map集合lMap与Collection不同lMap集合存储于取出元素的方式lMap集合的特点lMap集合中常用类高级软件人才实作培训专家高级软件人才实作培训专家!Map与CollectionlMap与Collection在集合框架中属并列存在lMap存储
10、的是键值对lMap存储元素使用put方法,Collection使用add方法lMap集合没有直接取出元素的方法,而是先转成Set集合,在通过迭代获取元素lMap集合中键要保证唯一性高级软件人才实作培训专家高级软件人才实作培训专家!Map集合常用类lHashtable:线程安全,速度慢,不允许存放null键,null值,已被HashMap替代。lHashMap:线程不安全,速度快,允许存放null键,null值。lTreeMap:对键进行排序,排序原理与TreeSet相同。例程练习:自定义一个可以同时存放三元素的Map集合。高级软件人才实作培训专家高级软件人才实作培训专家!集合框架中的工具类lCollections对集合进行查找取出集合中的最大值,最小值对List集合进行排序lArrays将数组转成List集合对数组进行排序对数组进行二分查找高级软件人才实作培训专家高级软件人才实作培训专家!新增for语句lCollection在JDK1.5后出现的父接口Iterable就是提供了这个for语句。l格式:for(数据类型变量名:数组或集合)执行语句;l简化了对数组,集合的遍历。高级软件人才实作培训专家高级软件人才实作培训专家!函数的另一种表现形式l返回值类型 函数名(参数类型 形式参数)执行语句;l其实接收的是一个数组,可以指定实际参数个数。