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);//trueSystem.out.println(str2 == str3);//falseSystem.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(数据类型 变量名 : 数组或集合 ){执行语句 ; } //简化了对数据、集合的遍历
-
函数:
-
返回值类型 函数名(参数类型... 形式参数) {执行语句;} //其实接收的是一个数组,可以指定实际参数个数
拼命敲