集合和数组的区别
集合的好处
- 不受容器大小的限制,可以随时添加,删除元素
- 提供了大量操作元素的方法(判断,获取)
Java集合的体系
单列集合(Collection)
List
1.创建集合对象
List list = new ArrayList();
2.添加学生对象到
list.add(s1);
3获取集合大小
System.out.println("集合元素个数为"+list.size());
4遍历list
for(int i=0; i< list.size(); i++)
{
Object obj = list.get(i);//获取索引为i的集合元素
System.out.println("索引为"+i+"的元素是"+obj);
}
5增强for遍历
for(元素类型 ele : 数组名/Iterable 实例){
}
List list = new ArrayList();
for(Object i:list)
{
System.out.println(i);
}
6迭代器遍历
for(Iterator it = list.iterator();it.hasNext();)
{
System.out.println(it.next());//既可以把指针往后移,又可以返回当前元素
}
列表迭代器是list集合体系独有的遍历方式,可以在对集合遍历的同时进行添加,删除操作
但是必须调用列表迭代器进行添加删除
//调用列表迭代器
ListIterator it = list.listIterator();
while(it.hasNext())
{
String s = (String) it.next();
//判断集合中是否有字母m,若有则在其后面添加”java"
if("m".equals(s))//避免空指针异常
{
it.add("java");
}
System.out.println(s);
}
//打印集合
for(Object i:list)
{
System.out.println(i);
}
双列集合(Map)
集合和泛型
泛型得特点:类型安全,避免类型转换
Collection成员方法
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class Test6 {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(5);
list.add(2);
list.add(1);
System.out.println("Before sort");
System.out.println(list);
//反转
System.out.println("After reverse ");
Collections.reverse(list);
System.out.println(list);
//获取最大值
Integer max = Collections.max(list);
System.out.println("max="+max);
//排序
Collections.sort(list);
System.out.println("After sort");
System.out.println(list);
System.out.println("降序");
Collections.reverse(list);
System.out.println(list);
//获取最小值
System.out.println("min="+Collections.min(list));
}
}