集合
什么是集合?
概念:对象的容器,定义了对多个对象进行操作,类似于数组的功能;
与数组的区别:
-
数组长度固定,集合长度不固定;
-
数组可以存储基本那类型和引用类型,集合只能存储引用类型;
处于;java.util.*;
Collection体系集合
接口Collection包括:List 和 Set接口;
List;
-
ArrayList
-
LinkedList
-
Vector,基本被淘汰;
三个实现类
Set:
- HashSet
- SortedSet
- TreeSet
Collection 父接口
特点:代表一组任意类型的对象,无序、无下表、不能重复;
方法:
- boolean add(Object obj)//添加一个对象
- boolean addAll(Collection c)//将一个集合中的所有对象添加到此集合中国。
- void clear()//清空此集合中的所有对象;
- boolean contains(Obejct o)//检查此集合是否包含该对象
- boolean equals(Obejct 0)//检查此集合是否与该对象下相等;
- boolean isEmpty()//判断此集合是否为空;
- boolean remove(0bject o)//在此集中中移除o对象
- int size()//返回此集合中的元素个数。
- object[] toArray()//将此集合转换为数组;
package com.zhou.study.Arrary;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/**
* Collection 接口的使用
* (1)添加元素
* (2)删除元素
* (3)遍历元素
* (4)判断
* @author:Zhou_jx,
*/
public class demo01 {
public static void main(String[] args) {
//创建集合
Collection collection = new ArrayList();
//添加元素
collection.add("apple");
collection.add("origin");
collection.add("watermelon");
//输出元素个数
System.out.println("元素个数"+collection.size());
System.out.println(collection);
//删除元素
collection.remove("apple");
System.out.println("删除后的元素个数为:"+collection.size());
System.out.println("-------------------------------");
//遍历集合.增强for
for(Object object:collection){
System.out.println(object);
}
//使用迭代器(迭代器专门用来遍历集合的一种方式)
//hashNext(),没有下一个元素
//next(),获取下一个元素
//remove(),删除当前元素
Iterator it = collection.iterator();
while (it.hasNext()){
String s = (String)it.next();
System.out.println(s);
//使用迭代器是,不能使用集合的方法进行修改,会有并发错误
}
//判断
System.out.println(collection.contains("apple"));
System.out.println(collection.isEmpty());
}
}
List集合
特点:有序,有下标,元素可以重复;
package com.zhou.study.Arrary;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
/**
* List的使用
* 特点1有序 有下标 可以重复
* @author:Zhou_jx,
*/
public class demo03 {
public static void main(String[] args) {
//先创建集合对象
List list = new ArrayList();
//添加元素
list.add("苹果");
list.add("小米");
list.add(0,"华为");
System.out.println("元素个数:"+list.size());
System.out.println(list.toString());
/*//删除元素
list.remove("苹果");
list.remove(0);
System.out.println(list.toString());*/
//遍历
//使用for循环
System.out.println("使用for循环;");
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
//使用增强for
System.out.println("使用增强for:");
for(Object object:list){
System.out.println(object);
}
//使用迭代器
Iterator it = list.iterator();
System.out.println("使用迭代器:");
while (it.hasNext()){
System.out.println(it.next());
}
//使用列表迭代器
ListIterator lis = list.listIterator();
System.out.println("使用列表迭代器,从前往后");
while (lis.hasNext()){
System.out.println(lis.nextIndex()+":"+lis.next());
}
System.out.println("使用列表迭代器,从后往前");
while (lis.hasPrevious()){
System.out.println(lis.previousIndex()+":"+lis.previous());
}
//判断
System.out.println(list.contains("小米"));
System.out.println(list.isEmpty());
//获取位置
System.out.println(list.indexOf("苹果"));
}
}