Java泛型使用 linkenlist arraylist
标题编写一个Circle类
分别使用LinkenList和ArrayList储存数据,分别使用迭代器和for循环遍历这两个list
public class Circle
{
public
double R,S;
public Circle(double R)
{
this.R=R;
}
public double getR()
{
return R;
}
public void setR(double r)
{
R = r;
}
public double getS()
{
S=R*R*3.14;
return S;
}
public boolean equals(Object obj)
{
Circle e = (Circle) obj;
if(this.R==e.R)
return true;
else return false;
}
}
这里为Circle类的创建和重写equals方法,如果不重写equals方法就无法比较,因为equals比较的是地址
import java.util.Iterator;
import java.util.LinkedList;
public class text1
{
public static void main (String args[])
{
LinkedList<Circle> list1=new LinkedList<Circle>();
LinkedList list2=new LinkedList();
Circle r1=new Circle(1);
Circle r2=new Circle(25);
Circle r3=new Circle(2);
Circle r4=new Circle(4);
list1.add(r1);
list1.add(r2);
list1.add(r3);
list1.add(r4);
int number1=list1.size();
for(int i=0;i<number1;i++)
{
double temp=list1.get(i).getS();
System.out.println(temp);
}
Iterator<Circle> iter1=list1.iterator();
while(iter1.hasNext())
{
Circle delete1=new Circle(2);
if(delete1.equals(iter1.next()))
{
iter1.remove();
System.out.println("被删除的为"+iter1.next().getR()+"的前一个/手动滑稽/");
}
}
int number3=list1.size();
for(int i=0;i<number3;i++)
{
double temp=list1.get(i).getR();
System.out.println("半径"+temp);
}
}
}
这里为使用for循环遍历这个LinkenList 因为使用for循环删除元素很容易造成数组下标越界异常,所以这里使用了迭代器进行比较删除
下面代码比较类似,就不多做赘述了
import java.util.*;
public class text2
{
public static void main (String args[])
{
ArrayList<Circle> list1=new ArrayList<Circle>();
Circle r1=new Circle(1);
Circle r2=new Circle(2);
Circle r3=new Circle(3);
Circle r4=new Circle(4);
list1.add(r1);
list1.add(r2);
list1.add(r3);
list1.add(r4);
for(int i=0;i<4;i++)
{
double temp=list1.get(i).getS();
System.out.println(temp);
}
Circle remove=list1.remove(1);
System.out.println("删除后");
for(int i=0;i<3;i++)
{
double temp=list1.get(i).getR();
System.out.println("半径"+temp);
}
}
}
public class text3
{
public static void main (String args[])
{
ArrayList<Circle> list1=new ArrayList<Circle>();
Circle r1=new Circle(1);
Circle r2=new Circle(2);
Circle r3=new Circle(3);
Circle r4=new Circle(4);
list1.add(r1);
list1.add(r2);
list1.add(r3);
list1.add(r4);
Iterator<Circle> iter1=list1.iterator();
while(iter1.hasNext())
{
double te=iter1.next().getR();
System.out.println(te);
}
// for(int i=0;i<4;i++)
// {
// double temp=list1.get(i).getS();
// System.out.println(temp);
// }
Circle remove=list1.remove(1);
System.out.println("删除后");
Iterator<Circle> iter2=list1.iterator();
while(iter2.hasNext())
{
double te=iter2.next().getR();
System.out.println(te);
}
// for(int i=0;i<3;i++)
// {
// double temp=list1.get(i).getR();
// System.out.println("半径"+temp);
// }
}
}
import java.util.*;
import java.util.Iterator;
public class text4
{
public static void main (String args[])
{
LinkedList<Circle> list1=new LinkedList<Circle>();
Circle r1=new Circle(1);
Circle r2=new Circle(2);
Circle r3=new Circle(3);
Circle r4=new Circle(4);
list1.add(r1);
list1.add(r2);
list1.add(r3);
list1.add(r4);
Iterator<Circle> iter1=list1.iterator();
while(iter1.hasNext())
{
double te=iter1.next().getR();
System.out.println(te);
}
Circle remove=list1.remove(1);
System.out.println("删除后");
System.out.println("------------------");
Iterator<Circle> iter2=list1.iterator();
while(iter2.hasNext())
{
double te=iter2.next().getR();
System.out.println(te);
}
}
}