day16【集合】
Collection 层次结构中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。
集合的长度是可变的。
集合只能储存对象
两大系列:
Collection 和 Map
一组对象 键值对
添加
集合名.size 集合中当前的元素数
集合名.addAll 添加另一个集合的全部元素
add(E obj):添加元素对象到当前集合中
移除
remove方法 吸收一个object型参数,需要调用equals方法匹配元素 如果找到则移除,如果找到多个 只会移除第一个。
removeall 移除所有。
clear 清除所有元素
contains 在集合中搜索参数元素 找到返回true 没有返回false
public class TwoTest {
public static void main(String[] args) {
Collection coll = new ArrayList();// 集合在声明的时候无需给出长度,长度可以随元素数量的增加而增加。
// System.out.println(coll.size());// 集合中当前的元素数。
coll.add("Tom");// 向集合中添加元素。
coll.add("Jerry");
coll.add("Mary");
coll.add("SanMao");
// System.out.println(coll.size());
// coll.clear();// 清楚集合中所有的元素。
// System.out.println(coll.size());
boolean flag = coll.contains("Tom1");// 在集合中搜索参数元素,如果找到返回true,如果没有找到返回false。
// System.out.println(flag);
boolean flag1 = coll.isEmpty();// 返回当前集合是否为空,true代表空,false代表集合中有元素。
转为数组**
(1)Object[] toArray():返回包含当前集合中所有元素的数组
Iterator迭代器
想要遍历Collection集合,那么就要获取该集合迭代器完成迭代操作,下面介绍一下获取迭代器的方法:
-
public Iterator iterator()
: 获取集合对应的迭代器,用来遍历集合中的元素的。 -
public E next()`:返回迭代的下一个元素。
-
public boolean hasNext()
:如果仍有元素可以迭代,则返回 true。
while(iter.hasNext()){// 迭代器迭代
Object o = iter.next();// next()方法返回Object类型。
String s = (String)o;
System.out.println(s);
}
迭代器对象,哪个集合对象调用的iterator方法产生的迭代器就迭代哪个集合
Collection接口的重要方法:
add(Object obj);// 添加一个元素
addAll(Collection coll);// 添加一个集合
remove(Object obj);// 移除一个元素
removeAll(Collection coll);// 移除一个集合中的所有元素
size();// 当前集合中的元素数。
clear();// 清楚集合中的所有元素
isEmpty();// 判定当前集合是否为空
iterator();// 返回一个迭代当前集合的迭代器
Collection接口的遍历:
// 第一种方式迭代器遍历
Iterator iter = coll.iterator();// 得到迭代器对象
while(iter.hasNext()){
Object obj = iter.next();// next()方法返回的一定是一个Object对象
String s = (String)obj;
}
// 增强for循环遍历
for(Object obj : coll){
Sting s = (String)obj;
}
==========================================================================================
List集合
- java.util.List
接口继承自
Collection接口,是单列集合的一个重要分支,习惯性地会将实现了
List`接口的对象称为List集合。 - List集合所有的元素是以一种线性方式进行存储的。
- 它是一个元素存取有序的集合。
- 它是一个带有索引的集合(有下标)
- 集合中可以有重复的元素,通过元素的equals方法,来不叫是否为重复元素。
List接口中常用方法
add()添加元素,如有两个参数:第一个参数为要插入的下标,第二个为元素。插入后所有元素后移一位。
list.add("孙悟空");
list.add(1,"贝吉塔");//指定下标添加元素
add all()指定位置插入一个集合
list.addAll(2,list1);//从下标2开始添加一个集合
remove() 删除指定索引位置的元素
list.remove(2);
list.remove("孙悟空");
removeAll ()删除一个集合
list.removeAll(list1);//删除list1这个集合
set(索引,新元素)替换指定索引位置的元素
int index = 集合.indexof(" ") 寻找第一个出现的元素索引位置
get ()取指定下标的单个元素
list subList( , )从第一个参数位置开始截取到第二个参数的前一位。
list.indexof (“孙悟空”) 在集合中搜索第一个出现该元素的下标
list.lastIndexof 最后一个该元素的下标
常用方法
/*
void add(int index, Object ele):在index位置插入ele元素
boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来
Object get(int index):获取指定index位置的元素
int indexOf(Object obj):返回obj在集合中首次出现的位置
int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置
Object remove(int index):移除指定index位置的元素,并返回此元素
Object set(int index, Object ele):设置指定index位置的元素为ele
List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合
总结:常用方法
增:add(Object obj)
删:remove(int index) / remove(Object obj)
改:set(int index, Object ele)
查:get(int index)
插:add(int index, Object ele)
长度:size()
遍历:① Iterator迭代器方式
② 增强for循环
③ 普通的循环
*/
List接口的遍历
//迭代器遍历
Iterator iter = list.iterator();
while(iter.hasNext()){
String s = (String)iter.next();
System.out.println(s);
}
//增强for循环遍历
for(Object obj : list){
String s = (String)obj;
System.out.println(s);
}
//传统for循环
for(int i = 0 ;i<list.size(); i++){
String s = (String)list.get(i);
System.out.println(s);
}