JAVA集合
存放不定数量的不定类型的内容可变的容器,且可以根据需要自由提取元素,只能存储引用类型
-Collection接口(不唯一,无序)
List接口(不唯一,有序)
ArrayList(线程不安全)
常用方法:
int size();
boolean isEmpty();
int indexOf(T t);
int lastIndexOf(T t);
boolean add(T t);
boolean add(int index,T t);
boolean add(T[] ts);
boolean add(int index,T[] ts);
T remove(int index);
boolean remove(T[] ts);
void retain(T[] ts)
boolean set(int index,T t);
T get(int index);
boolean contains(T t);
boolean contains(T[] ts);
Iterator<T> itetator();
Vector:线程安全
Linkedlist(线程不安全)
LinkedBlockingDeque(双向队列:线程安全)
LinkedBlockingQueue(单向队列:线程安全)
Set接口(唯一,无序)
HashSet
TreeSet
Map接口(键值对:键唯一,值不唯一,无序)
HashMap(线程不安全)
TreeMap
- 集合内的数据结构
Array:数组
优势:遍历
劣势:查找,插入,删除
Linked:链表
优势:插入,删除
劣势:遍历,查找
Hash:哈希表
优势:遍历,查找,新增,删除
Tree:红黑(平衡二叉)树
优势:查找
劣势:遍历,插入,删除
Iterator接口
hasNext():判断是否存在下一个访问元素
next():返回下一个访问元素
public static void main(String[] args) {
User user1 = new User("jack",25);
User user2 = new User("rose",25);
List<User> list = new ArrayList<User>();
list.add(user1);
list.add(user2);
Iterator<User> it = list.iterator();
while (it.hasNext()){
User a = it.next();
System.out.println(a.getUserName()+"\t"+a.getAge());
}
}
Collections类
对集合元素进行排序,查找和替换等操作
compareTo()方法
实现一个类的对象之间比较大小,这个类要实现Comparable接口
语法:int compareTo(Object obj)
参数:Object obj
返回值:负整数、零或正整数
public class User implements Comparable<User>{
private String userName;
private int age;
public User(String userName, int age) {
this.userName = userName;
this.age = age;
}
@Override
public int compareTo(User o) {
return null==o?-1:this.age>o.age?1:this.age==o.age?0:-1;
}
}
Collections.sort():对元素进行排序
Collections.binarySearch():对集合元素进行查找
Collections.fill():替换集合元素
泛型(本质:参数化类型)
语法:类1或接口<类型实参>对象=new 类2<类型实参>();
泛型类:访问修饰符 class className<TypeList>
泛型接口:访问修饰符 interFace interFaceName<TypeList>
泛型方法:访问修饰符<类型参数>返回值 方法名(参数列表)