集合框架:
集合就是一个容器,
数组也是一个容器,大小是唯一的类型是唯一的,它是有指针的
集合的特点:
1.容器大小可变
2.可以存储多种数据类型的值【只能是引用数据类型,对基本数据类型而言存储的是其包装类】
根据集合的存储方式不同,将集合划分两大类:一类是单列集合,另一类是双列集合。
关键词:Collection(单列集合)、Map(双列集合)
下面我们先看一下单列集合,
单列集合
Collection被称为是单列集合
单列集合是一个集合需要子类实现
List 允许重复、有序(输入输出顺序)
Set 不允许重复、无序(不保证输出顺序)
Collection中的方法:
添加:
add(Object object) 向集合中添加一个元素
addAll(Collection collection) 向集合中添加另一个集合
Collection coll = new ArrayList();
coll.add("沧海");//添加
Collection coll2 = new ArrayList();
coll2.add("爱");//添加
coll2.addAll(coll);//添加集合
删除:
remove(Object object) 从集合中移除指定的元素
removeAll(Collection collection) 从集合中移除指定的元素集合
coll.remove(1); //remove删除单个元素
System.out.println("删除单个元素后:"+coll);
//移除指定集合的元素 只要有相同的就移除
Collection coll2 = new ArrayList();
coll2.add(1);
coll2.add(2);
coll2.add(3);
coll2.add("沧海");
coll.removeAll(coll2);//删除coll集合中和coll2及格元素相同的元素
System.out.println("删除coll集合中和coll2中相同的元素:"+coll);
System.out.println("coll2中的元素:"+coll2);
clear() 清空集合中的所有元素
coll.clear();//clear清空
System.out.println("清空后的集合:"+coll);
//清空只能清空数据集合任然在
判断:
isEmpty() 判断集合是否为空—看集合中是否有元素
//判断集合是否为空isEmpty()
System.out.println("是否为空"+coll.isEmpty());
contains(Object object) 判断集合中是否包含指定的元素
containsAll(Collection collection) 判断集合中是否有另一个集合中对应的所有的元素
/**
* 是否包含
* 包含关键字:contains() containsAll()
*
*/
public static void judgeMethod() {
//创建集合对象
Collection coll = new ArrayList();
//add添加元素
coll.add("沧海");
coll.add(1);
coll.add("声笑");
System.out.println("coll-->"+ coll);
//是否包含某个元素
; System.out.println("是否包含1:"+coll.contains(1));
//addAll添加集合
Collection coll2 = new ArrayList();
coll2.add("爱");
coll2.addAll(coll);//添加coll集合
System.out.println("coll2-->"+coll2);
//containsAll是否包含某个集合
System.out.println("是否包含某个集合:"+coll.containsAll(coll2));
遍历:
iterator() 遍历集合
/**
* 迭代器(也就是遍历集合)
*/
public static void iteratorMetod() {
Collection coll = new ArrayList();
coll.add("heihei");
coll.add("小强");
coll.add(123);
Iterator it = coll.iterator();//迭代器
大小:
size() 获取集合元素个数
转换:
toArray() 将集合转换为数组----注意:集合中元素的类型是惟一的//创建集合对象
public static void changeArrayMetod() {
Collection coll = new ArrayList();
coll.add("heihei");
coll.add("小强");
coll.add(123);
//将集合转换为数组
//方法toArray()
Object[] objs = coll.toArray();
for (int i = 0; i < objs.length; i++) {
if (objs[i] instanceof String) {
String str = (String)objs[i];
System.out.println(str);
}
}
System.out.println(objs.length);
}
Collections与Collection的区别:
Collections是针对Collection集合提供的一个工具类
List集合及其应用
List集合同样是单列集合并且是Collection集合的子类,但List同样是一个接口需要子类来实现才能调用其中的方法。
/**
* List集合中常见的子类
* ArrayList
* 使用的是数组数据结构,查询快,增删慢
* LinkedList
* 使用的是数组链表数据结构,增删快,查询慢
*/
/**
* 通过下标进行元素添加
*/
public static void addMethod() {
List list = new ArrayList();
list.add("洞庭湖");
list.add("鄱阳湖");
list.add("西湖");
list.add(1, "龙子湖");
System.out.println("list:"+list);
List list2 = new ArrayList();
list2.add("鸡公山");
list2.add("灵山");
list2.add("老君山");
System.out.println("list2:"+list2);
list.addAll(1,list2);
System.out.println("添加后的集合:"+list);
}
/**
* 通过下标移除元素
*/
public static void removeMethod() {
List list = new ArrayList();
list.add("洞庭湖");
list.add("鄱阳湖");
list.add("西湖");
System.out.println("list集合的元素:"+list);
list.remove(1);
System.out.println("list集合删除指定元素后:"+list);//这里的结果为 {洞庭湖 ,西湖}
List list2 = new ArrayList();
list2.add("鸡公山");
list2.add("灵山");
list2.add("西湖");
list.removeAll(list2);
System.out.println("移除与list2相同的元素:"+list);//{洞庭湖,鄱阳湖}
}
/**
* 获取指定下标对应的元素
* list.get(下标数);
*/
public static void getElementMethod() {
//get(int index)
List list = new ArrayList();
list.add("洞庭湖");
list.add("鄱阳湖");
list.add("西湖");
System.out.println("指定下标对应的元素:"+list.get(2));
}
/**
* 在迭代的过程中修改集合中的元素
*/
public static void listlteratorMethod() {
List list = new ArrayList();
list.add("洞庭湖");
list.add("鄱阳湖");
list.add("西湖");
//获取迭代器
ListIterator listlt = list.listIterator();
int i = 0;
while(listlt.hasNext()) {
Object obj = listlt.next();
if (i%2 != 0) {
listlt.add("东"+ i + "湖");
} else {
listlt.set("西"+ i + "湖");
}
i++;
}
System.out.println("修改后的集合:" + list);
}
/**
* list集合中指针查找方向
*
*/
public static void listlteratorMethod2() {
List list = new ArrayList();
list.add("洞庭湖");
list.add("鄱阳湖");
list.add("西湖");
//获取迭代器
ListIterator listlt = list.listIterator();
System.out.println("下一个:"+ listlt.next());
System.out.println("下一个:"+ listlt.next());
System.out.println("下一个:"+ listlt.next());
System.out.println("上一个:"+listlt.previous());
System.out.println("上一个:"+listlt.previous());
System.out.println("上一个:"+listlt.previous());
}
}
/**
* Collections是针对Collection集合提供的一个工具类
* sort(List list) 对list集合进行排序(自然排序)
* set集合不重复、TreeSet是默认就有自然排序的
*/
public class CollectionsDemo {
public static void main(String[] args) {
compareList();
}
public static void compareList() {
List list = new ArrayList();
list.add("baidu.com");
list.add("aliyun.cn");
list.add("taobao.com");
list.add("yunhe.cn");
System.out.println("未排序的集合:"+list);
//对集合进行排序
Collections.sort(list);
System.out.println("排序后的集合:"+ list);
}
}
`