List集合的特有迭代器是什么?
特有的迭代器是listIterator。
public static void methodListIterator()
{
//演示列表迭代器:
ArrayList list = new ArrayList();
//1.添加元素--->add(Object obj),多态
list.add("java01");
list.add("java02");
list.add("java03");
list.add("java04");
//打印原集合
sop("原集合:" + list);
sop("------------------");
//在迭代过程中,准备添加或删除元素
for (ListIterator it = list.listIterator();it.hasNext(); )
{
Object obj = it.next();
if (obj.equals("java01"))
it.remove();
else if(obj.equals("java02"))
it.add("增加java200");
else if(obj.equals("java03"))
it.set("修改为java300");
sop("obj:" + obj);
}
sop("list :" + list);
}
集合中的两种排序方式?
排序有两个要素:元素和集合
1)第一种排序方式:自然排序
让元素自身具备比较性。元素需要实现Comparable接口,覆盖compareTo方法,这种方式也称为元素的自然排序或默认排序方式。
/*
第一种排序方式:自然排序,实现Comparable接口,重写compareTo方法
需求:
向TreeSet集合中存储自定义对象学生
按照学生的年龄进行排序
*/
import java.util.*;
//此接口强制让Student实现比较性
class Student implements Comparable
{
//定义Student私有属性
private String name;
private int age;
//构造Student函数,初始化
Student(String name,int age)
{
this.name = name;
this.age = age;
}
//公共访问方法,访问私有属性
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
//复写Comparator中的compare方法,自定义比较器
public int compareTo(Object obj)
{
//判断是否属于Student类型,否则抛异常
if (!(obj instanceof Student))
throw new RuntimeException("NotSuchTypeException");
//将Object类对象强转为Student类
Student s = (Student)obj;
//System.out.println(this.age + "--compare-" + s.age);//测试用,查看比较情况
//按年龄大小比较,相同则比较姓名大小,不同返回两年龄之差
if (this.age == s.age)
{
return this.name.compareTo(s.name);
}
else if (this.age return this.age-s.age; return this.age-s.age; } /* //如果按照存入顺序输出 public int compareTo() { return 1;//改为-1则按倒叙输出 } */ } //测试 class TreeSetTest { public static void main(String[] args) { //创建集合,并添加元素 TreeSet ts = new TreeSet(); ts.add(new Student("li01",25)); ts.add(new Student("li02",20)); ts.add(new Student("li01",22)); ts.add(new Student("li05",24)); ts.add(new Student("li08",40)); //打印集合中元素 printE(ts); System.out.println("Hello World!"); } //定义打印集合中元素的功能 public static void printE(TreeSet ts) { //迭代器方法获取 Iterator it = ts.iterator(); while (it.hasNext()) { //将返回的元素(Object类)强转为Student类 Student s = (Student)it.next(); System.out.println(s.getName() + "---" + s.getAge()); } } } 2)第二种排序方式:比较器 当元素自身不具备比较性是,或者具备比较性,却不是所需要的,这时就需要让集合自身具备比较性。在集合初始化时就有了比较方式(即参阅构造函数)。 当两种排序方式都存在时,以比较器为主。 如何构造比较器:定义一个类,实现Comparator接口,覆盖compare方法。 import java.util.*; //此接口强制让Stud