集合
- 储存对象,长度可变(数组初始化后长度不可变)
- 集合类比数组强大,类似于包装类和基本数据类型
两大接口
Collection
List :可重复放对象、有序
Set :不能重复放对象、按照哈希算法的结果存放
Queue :队列
SortedSet :可对集合排序
Map 映射
SortedMap :可对集合数据排序
collection 接口
add(Object obj) addAll(Collection c)
clear() retainAll(Connection c)//delete diffrent from c
contains(Object obj) containsALl(Collection c)
isEmpty()
Iterator //return a iterator object
remove(Object obj) removeAll(Collection c)
int size()
toArray()//return Object[]
搞一个带有泛型的小列子
public class Demo{
public static void main(String[] args)
{
Collection <String> c=new ArrayList<>();
c.add("hello world");
c.add("java is the best language in the world");
System.out.println(c);
}
}
输出:hello world, java is the best language in the world]
提到容器无论是数组还是集合就想搞一件事情,就是存入与取出,遍历算法应运而生。那么collection如何进行遍历呢?
- 传统的for循环
- Iterator 迭代器 这是一个对象
Iterator it =arrylist.iterator();
接口方法产生的对象 for each 增强for循环
EG:
public class Demo{
public static void main(String[] args)
{
List<String> list=new ArrayList();
list.add("hello");
list.add("world");
list.add("welcome");
list.add("thanks");
System.out.print(list)
/*遍历输出*/
//首选迭代器Iterator
Iterator it =list.iterator();
while(it.hasNest())
{
System.out.print("迭代输出:"+it.next())
}
//对对象使用增强for循环
for(String str:list)//str is a parameter
{
System.out.println("fore集合迭代输出:"+str)
}
}
//传统的for方法 for方法内部实例化 Iterator对象
int=0;
for(Iterator it=list.iterator();i<list.size();i++)
{
System.out.println("输出:"+it.next());
}
//利用数组进行遍历输出
Object[] object=list.toArray();
for(Object obj:object)
{
System.out.println("输出:"+obj);
}
}