[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ZugaRv1-1597799102714)(集合体系图.jpg)]
package com.qf.coll;
import java.util.ArrayList;
import java.util.Collection;
public class Demo01 {
public static void main(String[] args) {
// 创建Collection集合的对象,执行实现类ArrayList
Collection coll = new ArrayList();
}
}
package com.qf.coll;
import java.util.ArrayList;
import java.util.Collection;
public class Demo02 {
public static void main(String[] args) {
/**
* 增加
* boolean add(E e)
确保此 collection 包含指定的元素(可选操作)。
boolean addAll(Collection extends E> c)
将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。
*/
Collection coll = new ArrayList();
coll.add("张三");
coll.add(23);
coll.add(true);
coll.add("法外狂徒");
System.out.println(coll);
System.out.println(coll.size());
coll.add("张三");
coll.add(23);
coll.add(true);
coll.add("法外狂徒");
System.out.println(coll);
System.out.println(coll.size());
Collection coll02 = new ArrayList();
coll02.add("床前明月光");
coll02.add("疑是地上霜");
coll02.add("举头望明月");
coll02.add("低头思故乡");
System.out.println(coll02);
// 把另一个集合中的元素全放入本集合
coll.addAll(coll02);
System.out.println(coll);
}
}
package com.qf.coll;
import java.util.ArrayList;
import java.util.Collection;
public class Demo03 {
public static void main(String[] args) {
/**
删除
boolean remove(Object o)
从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。
boolean removeAll(Collection> c)
移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。
boolean retainAll(Collection> c)
仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。
void clear()
移除此 collection 中的所有元素(可选操作)。
*/
Collection coll01 = new ArrayList();
coll01.add("111");
coll01.add("222");
coll01.add("333");
coll01.add("宋江");
coll01.add("李逵");
coll01.add("鲁智深");
System.out.println(coll01);
boolean ret = coll01.remove("李逵");
System.out.println(ret);
ret = coll01.remove("李逵");
System.out.println(ret);
System.out.println(coll01);
Collection coll02 = new ArrayList();
coll02.add("111");
coll02.add("222");
coll02.add("333");
coll02.add("444");
System.out.println(coll02);
// 删除两个集合的交集
// ret = coll02.removeAll(coll01);
System.out.println(ret);
System.out.println(coll01);
System.out.println(coll02);
// 保存两个集合的交集
ret = coll01.retainAll(coll02);
System.out.println(ret);
System.out.println(coll01);
System.out.println(coll02);
coll02.clear();
System.out.println(coll02);
}
}
package com.qf.coll;
import java.util.ArrayList;
import java.util.Collection;
public class Demo04 {
public static void main(String[] args) {
/**
查看
boolean contains(Object o)
如果此 collection 包含指定的元素,则返回 true。
boolean containsAll(Collection> c)
如果此 collection 包含指定 collection 中的所有元素,则返回 true。
boolean isEmpty()
如果此 collection 不包含元素,则返回 true。
Iterator iterator()
返回在此 collection 的元素上进行迭代的迭代器。
int size()
返回此 collection 中的元素数。
其他
Object[] toArray()
返回包含此 collection 中所有元素的数组。
T[]
toArray(T[] a)
返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。
*/
Collection coll = new ArrayList();
coll.add("虚竹");
coll.add("段誉");
coll.add("乔峰");
coll.add("玄慈方丈");
System.out.println(coll);
System.out.println(coll.contains("虚竹"));
Collection coll02 = new ArrayList();
coll02.add("天山童姥");
coll02.add("李秋水");
coll02.add("木婉清");
coll02.add("虚竹");
coll02.add("段誉");
coll02.add("乔峰");
coll02.add("玄慈方丈");
// 判断集合A是否完全包含集合B
System.out.println(coll02.containsAll(coll));
System.out.println(coll.isEmpty());
System.out.println(coll.size());
}
}
package com.qf.coll;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Demo05 {
public static void main(String[] args) {
/**
其他
Object[] toArray()
返回包含此 collection 中所有元素的数组。
T[]
toArray(T[] a)
返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。
*/
Collection coll = new ArrayList();
coll.add("锄禾日当午");
coll.add("汗滴禾下土");
coll.add("谁知盘中餐");
coll.add("粒粒皆辛苦");
System.out.println(coll);
System.out.println(coll.getClass().getName());
Object[] arr = coll.toArray();
System.out.println(arr);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
Iterator it = coll.iterator();
while (it.hasNext()) {
Object object = (Object) it.next();
System.out.println(object);
}
}
}
e1.equals(e2)
的元素对 e1
和e2
,并且如果列表本身允许 null 元素的话,通常它们允许多个 null 元素。package com.qf.list;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class Demo01 {
public static void main(String[] args) {
List list = new ArrayList();
List list2 = new LinkedList();
}
}
package com.qf.list;
import java.util.ArrayList;
import java.util.List;
public class Demo02 {
public static void main(String[] args) {
/**
* 增加
* boolean add(E e)
向列表的尾部添加指定的元素(可选操作)。
void add(int index, E element)
在列表的指定位置插入指定元素(可选操作)。
boolean addAll(Collection extends E> c)
添加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序(可选操作)。
boolean addAll(int index, Collection extends E> c)
将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)。
*/
List list01 = new ArrayList();
list01.add("刘备");
list01.add("关羽");
list01.add("张飞");
list01.add("陆逊");
System.out.println(list01);
list01.add(0,"曹操");
System.out.println(list01);
List list02 = new ArrayList();
list02.add("许褚");
list02.add("典韦");
list02.add("张辽");
list02.add("曹安民");
System.out.println(list02);
list01.addAll(1,list02);
System.out.println(list01);
}
}
package com.qf.list;
import java.util.ArrayList;
import java.util.List;
public class Demo03 {
public static void main(String[] args) {
/**
删除
E remove(int index)
移除列表中指定位置的元素(可选操作)。
boolean remove(Object o)
从此列表中移除第一次出现的指定元素(如果存在)(可选操作)。
boolean removeAll(Collection> c)
从列表中移除指定 collection 中包含的其所有元素(可选操作)。
boolean retainAll(Collection> c)
仅在列表中保留指定 collection 中所包含的元素(可选操作)。
void clear()
从列表中移除所有元素(可选操作)。
*/
List list01 = new ArrayList();
list01.add("刘备");
list01.add("关羽");
list01.add("张飞");
list01.add("陆逊");
List list02 = new ArrayList();
list02.add("许褚");
list02.add("典韦");
list02.add("张辽");
list02.add("曹安民");
boolean ret = list01.remove("关羽");
System.out.println(ret);
System.out.println(list01);
ret = list01.remove("关羽");
System.out.println(ret);
System.out.println(list01);
System.out.println(list01.remove(1));
System.out.println(list01.remove(1));
list01.add(1);
list01.add(1);
list01.add(2);
System.out.println(list01);
// 优先以下标为参考移出元素
list01.remove(2);
System.out.println(list01);
System.out.println(list01);
list01.add("许褚");
list01.add("典韦");
list01.add("张辽");
System.out.println(list01);
// 移出集合A和B的交集
// list01.removeAll(list02);
System.out.println(list01);
// 取出交集
list01.retainAll(list02);
System.out.println(list01);
}
}
package com.qf.list;
import java.util.ArrayList;
import java.util.List;
public class Demo04 {
public static void main(String[] args) {
/**
修改
E set(int index, E element)
用指定元素替换列表中指定位置的元素(可选操作)。
查询
boolean contains(Object o)
如果列表包含指定的元素,则返回 true。
boolean containsAll(Collection> c)
如果列表包含指定 collection 的所有元素,则返回 true。
E get(int index)
返回列表中指定位置的元素。
int indexOf(Object o)
返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。
boolean isEmpty()
如果列表不包含元素,则返回 true。
int lastIndexOf(Object o)
最后一次出现的位置
int size()
返回列表中的元素数。
*/
List list01 = new ArrayList();
list01.add("刘备");
list01.add("关羽");
list01.add("张飞");
list01.add("陆逊");
List list02 = new ArrayList();
list02.add("许褚");
list02.add("典韦");
list02.add("张辽");
list02.add("曹安民");
System.out.println(list01);
// 通过索引找到具体的元素,再次赋值
list01.set(3, "黄忠");
System.out.println(list01);
System.out.println(list01.contains("陆逊"));
System.out.println(list01.containsAll(list02));
System.out.println(list01.get(2));
System.out.println(list01.indexOf("陆逊"));
System.out.println(list01.indexOf("黄忠"));
System.out.println(list01.size());
}
}
List
接口的大小可变数组的实现。package com.qf.arrlist;
import java.util.ArrayList;
public class Demo01 {
public static void main(String[] args) {
/**
* 构造方法摘要
ArrayList()
构造一个初始容量为 10 的空列表。
ArrayList(Collection extends E> c)
构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
ArrayList(int initialCapacity)
构造一个具有指定初始容量的空列表。
*/
ArrayList list = new ArrayList();
list.add("武松");
list.add("大郎");
list.add("西门大官人");
System.out.println(list);
ArrayList list02 = new ArrayList(list);
System.out.println(list02);
ArrayList list03 = new ArrayList(30);
}
}
package com.qf.arrlist;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
public class Demo03 {
public static void main(String[] args) {
/**
* 遍历ArrayList
*
*/
ArrayList list = new ArrayList();
list.add("奔波儿灞");
list.add("霸波尔奔");
list.add("白骨精");
list.add("金角大王");
list.add("银角大王");
list.add("铜角大王");
System.out.println(list);
System.out.println("=============for===============");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println("=============while===============");
int index = 0;
while (index < list.size()) {
System.out.println(list.get(index++));
}
System.out.println("=============foreach===============");
/**
* 不使用下标就能遍历集合或者数组
* for(容器中的数据类型 临时遍历名 : 目标容器){
* 循环进行的操作
* }
*/
for (Object name : list) {
System.out.println(name);
}
System.out.println("=============iterator===============");
Iterator it = list.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
System.out.println("=============listIterator===============");
ListIterator lit = list.listIterator();
while (lit.hasNext()) {
Object object = (Object) lit.next();
System.out.println(object);
}
while(lit.hasPrevious()) {
System.out.println(lit.previous());
}
}
}
List
接口的链接列表实现。package com.qf.linkedlist;
import java.util.LinkedList;
public class Demo01 {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
LinkedList list = new LinkedList();
list.add("奔波儿灞");
list.add("霸波尔奔");
list.add("白骨精");
list.add("金角大王");
list.add("银角大王");
list.add("铜角大王");
System.out.println(list.pop());
// 编写代码,验证LinkedList中的增删改查的方法
}
}