目录
ArrayList
Collecion
LIst
linkedList
Collections
HashMap
集合框架被设计成要满足以下几个目标。
该框架必须是高性能的。基本集合(动态数组,链表,树,哈希表)的实现也必须是高效的。
该框架允许不同类型的集合,以类似的方式工作,具有高度的互操作性。
对一个集合的扩展和适应必须是简单的。
为此,整个集合框架就围绕一组标准接口而设计。
但是这篇文章只说几个
ArrayList
特点:能存储任意类型的集合
ArrayList list = new ArrayList();
//增
list.add("a");
list.add("b");
//删
list.remove(0);
boolean bo = list.remove("a");
System.out.println(bo);
//改
list.set(2,"w");
System.out.println(list);
//查
String st = (String)list.get(2);
System.out.println(st);
Collecion
单列集合
Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素, Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。
//boolean add(E e) 添加元素
Collection collection = new ArrayList<>();
collection.add("a");
collection.add("b");
collection.add("c");
// boolean contains(Object o) 判断集合是否含有指定的元素
boolean b = collection.contains("a");
System.out.println(b);//true'
System.out.println(collection);//[a, b, c]
//boolean remove(Object o) 从集合中移除指定元素
boolean b1 = collection.remove("a");
System.out.println(b1);//true
System.out.println(collection);//[b, c]
// void clear() 清空集合
collection.clear();
System.out.println(collection);//[]
//boolean isEmpty() 判断集合是否为空
boolean b2 = collection.isEmpty();
System.out.println(b2);//true 原因:第35行清除集合了
//int size() 集合长度
int i = collection.size();
System.out.println(i);//0
LIst
List接口是一个有序的 Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的下标)来访问List中的元素,第一个元素的索引为 0,而且允许有相同的元素。
//void add(int index,E element) 在此集合中的特定位置插入指定元素
list.add(0,"a");
list.add(0,"b");
list.add(0,"c");
System.out.println(list); //[c, b, a]
//E remove(int index) 删除指定索引处的元素 返回被删除元素
String st = list.remove(0);
System.out.println(st);//被删除的元素是:c
System.out.println(list);//[b, a]
//E set(int index,E element) 修改指定索引处的元素 返回被修改元素
String st1 = list.set(0,"w");
System.out.println(st1); //被修改的元素是:b
System.out.println(list);//[w, a]
//E get(int index) 获取指定位置的元素
String st2 = list.get(0);
System.out.println(st2); //w
linkedList
是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作,实现 List 接口,能对它进行队列操作。
他是由node节点实现的
//public void addLast(E e) 在该列表尾部插入指定元素
list.addLast("c"); //无论是添加头还是尾 只要是第一次添加 第一个节点即是头节点 又是 尾节点
System.out.println(list);//[b, a, c]
//public E getFirst() 获取第一个元素
String st = list.getFirst();
System.out.println(st);//b
//public E getLast() 获取最后一个元素
String st1 = list.getLast();
System.out.println(st1);//c
//public E removeFirst() 从列表中删除并返回第一个元素
String st2 = list.removeFirst();
System.out.println(st2);//b
System.out.println(list);//[a, c]
//public E removeLast() 从列表中删除并返回最后一个元素
String st3 = list.removeLast();
System.out.println(st3);//c
//压入 放在头部
list.push("w");
System.out.println(list);//[w, a, b, c, d, e]
//取上面元素 但不清空此元素
String st = list.peek();
System.out.println(st);
System.out.println(list);
//弹出上面元素 同时清空此元素
String st = list.pop();
System.out.println(st);
System.out.println(list);
//boolean isEmpty() 测试是否为空
boolean b = list.isEmpty();
System.out.println(b);
Collections
Collection 是集合体系的最底层 包含了集合体系的共性, Collections 是一个工具类 方法都是用于操作Collection
Listlist = new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); //static void swap(List list, int i, int j) 将指定列表中的两个索引进行位置互换 Collections.swap(list,0,3); System.out.println(list);//[d, b, c, a] //static void sort(List list) 按照列表元素的自然排序进行排序 Collections.sort(list); System.out.println(list);//[a, b, c, d] //static void shuffle(List list) 随机置换 Collections.shuffle(list); System.out.println(list);//[d, a, c, b] //static void reverse(List list) 反转集合 Collections.reverse(list); System.out.println(list);//[d, c, b, a] 此结果注释随机置换 //static void fill(List list, Object obj) 使用特定的对象填充指定列表 Collections.fill(list,"a"); System.out.println(list);//[a, a, a, a] // 目标列表 原列表 //static void copy(List dest,List src) 把原列表中的数据覆盖到目标列表 //ps: 目标列表的长度至少等于原列表的长度 List list1 = new ArrayList<>(); list1.add("1"); list1.add("2"); list1.add("3"); list1.add("4"); Collections.copy(list,list1); System.out.println(list);//[1, 2, 3, 4] //static int binarySearch(List list, Object key) 使用二分查找法查找指定元素 //二分查找的前提是存储元素是有序的 int index = Collections.binarySearch(list,"2"); System.out.println(index);



