目录
一.Iertator迭代器
Iterator接口定义了如下方法:
1.boolean hasNext();//判断游标当前位置是否有元素,如果有返回Ttue,没有返回false。
2.Object next();//获取当前游标所在位置元素,并将游标移动到下一个位置;
3.void remove();//删除当前位置的元素,在执行完next后,该操作只能执行一次。
1.1 迭代器的使用
1.1.1 使用Iterator迭代List接口类型容器
import java.util.*;
import java.util.Iterator;
public class Text {
public static void main(String[] args) {
//实例化容器
List<String> list=new ArrayList();
//添加元素
list.add("a");
list.add("b");
list.add("c");
//获取迭代器对象
Iterator<String> iterator=list.iterator();
boolean flag=iterator.hasNext();
//获取一个元素
if(flag){
String value=iterator.next();
System.out.println(value);
}
//获取元素
//方式一:在迭代器中,用while循环获取元素
while(iterator.hasNext()){
String v=iterator.next();
System.out.println(v);
}
//方式二:在迭代器中,通过for循环获取元素
for(Iterator it=list.iterator();it.hasNext();){
String v=iterator.next();
System.out.println(v);
}
}
}
1.1.2 使用Iterator迭代器迭代Set类型容器
public class test {
public static void main(String[] args) {
//实例化容器
Set<String> set=new HashSet<>();
set.add("a");
set.add("b");
set.add("c");
//方式一:通过while循环
//获取迭代对象
Iterator<String> iterator=set.iterator();
while (iterator.hasNext()){
String v=iterator.next();
System.out.println(v);
}
//方式二:通过for获取元素
for (Iterator<String> it=set.iterator();it.hasNext();){
String v=it.next();
System.out.println(v);
}
}
}
1.1.3 在迭代器中删除元素
//在迭代器中删除元素
List<Integer> list=new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
/**for (int i=0;i<list.size();i++){
list.remove(2);
System.out.println(list.get(i));//错误,,在删除掉2位置的元素后,后面元素会自动上前移动。。
}*/
for (int i=0;i<list.size();i++){
if(1==list.get(i)){
list.remove(i);
}
System.out.println(list.get(i));
}
//set
Set<String> s=new HashSet<>();
s.add("a");
s.add("b");
s.add("c");
Iterator<String> i=s.iterator();
while (i.hasNext()){
String v1=i.next();
if ("c".equals(v1)){
i.remove();
}
}
二.Collections工具类
Collections是一个工具类,它提供了对Set,List,Map进行排序,填充,查找元素的辅助方法,该类中所有的方法都为静态方法。
1. void sort(List) //对List容器内的元素排序,按照升序进行排序。
2. void shuffle(List) //对List内的元素进行随机排列。
3. void reverse(List) //对List容器内的元素进行逆序排列。
4. void fill(List,Object) //用一个特定的对象重写整个List容器。
5. int binarySerch(List,Object) //对于顺序的List容器,采用折半查找法查找特定对象。
//对List容器进行排序处理
List<Integer> l1=new ArrayList<>();
l1.add(3);
l1.add(21);
l1.add(1);
Collections.sort(l1);
for (Integer t:l1){
System.out.println(t);
}
//对List容器进行随机排序
//洗牌处理
Collections.shuffle(l1);
for (Integer t:l1){
System.out.println(t);
}
//逆序排列
Collections.reverse(l1);
for (Integer t:l1){
System.out.println(t);
}
//重写List容器
Collections.fill(l1,5);
for (Integer t:l1){
System.out.println(t);//5,5,5
}
//查找元素
int num=Collections.binarySearch(l1,2);
System.out.println(num);//-1
int num1=Collections.binarySearch(l1,5);
System.out.println(num1);//1