一、集合:Collection
一些方法(更多方法请参考帮助文档):增add(Object obj)、删remove()/removeAll()/clear()、改set(index,Object)、查get(index),迭代iterator()—>遍历
1:List接口
特点:有序可重复的,可以用下标来进行操作。
常用的类;
1.1 ArrayList:底层是以数组形式存储数据,查找效率高,增删改较低
1.2 LinkedList:底层以链表形式存储数据,查找效率低,增删改较高
2:Set接口
特点:无序:放进去的顺序跟取出来的顺序不一样。不可重复的。
方法跟Collection方法一样。
2.1:HashSet:用哈希表去除重复元素,判断一个数据是否重复,首先是判断改数据的哈希值是否与以创建的哈希表中的值相同,如果相同就为重复,如果不同再调用equals方法比较是否相同,返回true则表示同一个数据,不会添加,否则就添加。
2.2:TreeSet:用红黑树(平衡的二叉树)结构来存储数据。根据compareTo方法的返回值去除重复元素和排序。compareTo方法是接口Comparable中的,使用者可以在实现给接口的情况下重写该方法来自定排序规则。
3:泛型编程 , 表示形式< >,< > 尖括号中可以放多个字母,用“,”分开<T,E>
在运用集合的时候,将运行时的错误提前到编译时期。在创建集合的时候,就规定集合元素的类型。
3.1:泛型定义在方法上。泛型方法,返回值类型也可以用泛型表示
public <T> 返回值类型 方法名(T t){
方法体。
}
public <T> T 方法名(T t){
方法体。
return t;
}
T;表示任意一种引用数据类型。类型名称可以用任意字母或者单词表示,一般都用一个大写字母表示。
?:表示任意引用类型。有可能有多种引用数据类型
? extends T:表示任意T或者T子类。
? super T :表示任意T或者T的父类。
3.2:泛型类
class 类名 <T>{
}
3.3:泛型接口
Interface 类名 <T>{
}
4.集合类Collections
static
|
binarySearch(List<? extends Comparable<? super T>> list, T key) 使用二分搜索法搜索指定列表,以获得指定对象。 |
static void |
swap(List<?> list, int i, int j) 在指定列表的指定位置处交换元素。 |
static
|
sort(List<T> list)
根据元素的自然顺序 对指定列表按升序进行排序。 |