字符串的不变性
String 对象创建后则不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同。如果需要一个可以改变的字符串,我们可以使用StringBuffer或者StringBuilder。
Java集合框架
数组的长度固定,集合的长度可变.集合中存储的都是一个个对象的引用。
数组只能通过下标访问元素,类型固定,而有的集合可以找
Collection:根接口之一,数据元素是单独出现,主要有以下三个子接口:
List:主要实现类ArrayList(可以通过API查看子接口中含有的方法)
Queue:主要实现类LinkedList(链表)
Set:实现类HashSet
Map:根接口之一,为集合内部提供映射关系,成对出现,主要有以下一个子接口:
HashMap
List接口及其实现类-ArrayList
List是元素有序并且可以重复的集合。主要的函数功能有增(add\addAll)、删(remove\removeAll)、改(set)、查(get/iterator迭代器)。
泛型
集合中的元素可以事任意类型的对象,如果把某个对象放入集合,则会忽略它的类型,而把它当做object处理。泛型则规定了某个集合只可以存放特定类型的对象,这样的话,在做get()操作时不用强转类型。泛型不能使用基本类型,只能用基本类型的包装类。
Set接口及其实现类-HashSet
Set是元素无序并且不可以重复的集合,并成为集。因为Set元素无序,所以没有set()函数去改变集中的元素。
循环遍历Set集合中的元素,只能用foreach元素和方法。
Map
查看API看 <key,value>
key是Set集合,value可以是任何你想要存的类型。通过entrySet()遍历Map。
Collections
用于辅助集合,包含了一些静态函数的工具类
Comparable(带有范型的接口)
表示对象是可以比较的,默认的比较规则。如果某个类实现了该接口:表示这个实例可以比较大小,可以进行自然排序,定义了默认的比较规则;实现类需实现compareTo()方法
Comparator(接口)
临时的比较规则,必须实现compare()方法,会和sort()方法结合使用。
例如对某个具体的类定义一个临时的比较规则。
Ctrl+鼠标左键:可以查看这个类或者接口的API函数