关于ArrayList的三种遍历方法
public static void main(String[] args) {
ArrayList al=new ArrayList<>();
al.add("a");
al.add("b");
al.add("c");
al.add("d");
al.add("a");
/**
*遍历方法一
*/
for(int i=0;i<al.size();i++) {
System.out.println(al.get(i));
}
/**
* 遍历方法二(foreach)
*/
for (Object obje : al) {
System.out.println(obje);
}
/**
* 遍历方法三(迭代器遍历)
*/
Iterator iterator = al.iterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
}
这是写在main方法里的,mian方法以外的就没写了,这都是最简单的。
这里输出的会是(a,b,c,d,a),这说明ArrayList会存在相同的元素,而下面会教大家怎么去除重复的元素.
关于List集合中的去重操作
判断list 集合中元素是否相同,原理是arrayList调用Contains()的方法,当调用Contains()方法时会自动调用它的底层equals()的方法,我们要将原有的集合遍历,再将遍历后的元素存放到新的集合中,存放前做一个判断,再重写equals()的方法。
public static void main(String[] args) {
ArrayList al=new ArrayList<>();
Student s=new Student();
al.add("a");
al.add("b");
al.add("c");
al.add("d");
al.add("a");
/**
* 写一个方法
*/
ArrayList alist=listremove(al);
System.out.println(alist.size());
}
private static ArrayList listremove(ArrayList al) {
ArrayList nal=new ArrayList<>();
for (Object obj : al) {
if(!nal.contains(obj)) {
nal.add(obj);
}
}
return nal;
}
``下面是元素为自定义对象时的代码,
``
public static void main(String[] args) {
ArrayList al=new ArrayList<>();
Student s=new Student();
al.add(new Student("a", "12"));
al.add(new Student("b", "36"));
al.add(new Student("c", "42"));
al.add(new Student("d", "22"));
al.add(new Student("a", "12"));
/**
* 写一个方法
*/
ArrayList alist=listremove(al);
System.out.println(alist.size());
}
private static ArrayList listremove(ArrayList al) {
ArrayList nal=new ArrayList<>();
for (Object obj : al) {
if(!nal.contains(obj)) {
nal.add(obj);
}
}
return nal;
}
class Student{
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public Student(String name, String age) {
super();
this.name = name;
this.age = age;
}
public Student() {
super();
}
public boolean equals(Object obj){
if(obj instanceof Student){
Student s=(Student)obj;
return this.getName().equals(s.getName())&&this.getAge().equals(s.getAge)'
}
return false;
}
}
``