List獨有方法:
import java.util.ArrayList;
import java.util.List;
public class ListTest2 {
public static void main(String[] args) {
List list=new ArrayList();
list.add("abc1");
list.add("abc2");
list.add("abc1");
list.add("abc3");
list.add("abc4");
list.add("abc5");
list.add("abc5");
list.add("abc6");
for (int i = 0; i
Object obj=list.get(i);
for (int j =i+1; j
if (obj.equals(list.get(j)))
{ list.remove(j);//如果刪除了下一個 因為是數組形
// 式,所以整體提前。如果緊接著下一個會提到j位置上 所以j-- 遍歷到刪除后緊接的下一個
j--;}
}
}
System.out.println(list.toString());
}
}
集合迭代器方法:
//建立臨時集合 將此集合中的對象按順序放入臨時集合中
//相同的不放入臨時結合 清空此集合,將臨時集合中添加到此集合完成
public class ListTest2_1 {
public static void main(String[] args) {
List list=new ArrayList();
list.add("abc1");
list.add("abc2");
list.add("abc1");
list.add("abc3");
list.add("abc4");
list.add("abc5");
list.add("abc5");
list.add("abc6");
singleElement(list);
System.out.println(list.toString());
}
private static void singleElement(List list) {
List list1=new ArrayList();
for (Iterator iterator = list.iterator(); iterator.hasNext(); ) {
String next = (String) iterator.next();
if (!list1.contains(next)) {
list1.add(next);
}
}
list.clear();
list.add(list1);
}
}
取出對象中自定義元素 及去掉重復元素
//將Person對象存入List集合中 并顯示出來
public class ListTest1 {
public static void main(String[] args) {
List list=new ArrayList();
ListTest1_Person lp1=new ListTest1_Person("松江",15);
ListTest1_Person lp2=new ListTest1_Person("阿薩",15);
ListTest1_Person lp3=new ListTest1_Person("自行車",15);
list.add(lp1);
list.add(lp2);
list.add(lp3);
list.add(new ListTest1_Person("松江",15));
list.add(new ListTest1_Person("松江",16));
list.add(new ListTest1_Person("阿薩",15));
singleElement(list);
System.out.println(list.toString());//調用的內部toString方法 --2
//取出自定義元素--1
/* for (Iterator iterator = list.iterator(); iterator.hasNext(); ) {
ListTest1_Person next = (ListTest1_Person) iterator.next();//.next();是obj類型
// 向下轉換類型 轉換成ListTest1_Person類型可以調用get方法
System.out.println(next.getName()+next.getAge());
}*/
}
// --2
private static void singleElement(List list) {
List list1=new ArrayList();
for (Iterator iterator = list.iterator(); iterator.hasNext(); ) {
ListTest1_Person next = (ListTest1_Person) iterator.next();
if (!list1.contains(next)) {
//contains方法調用的引用類對象的equals方法 所以復寫方法使equals不但判斷地址而且判斷年齡姓名
list1.add(next);
}
}
list.clear();
list.add(list1);
}
}
Person類
public class ListTest1_Person {
private String name;
private int age;
public ListTest1_Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "ListTest1_Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof ListTest1_Person))
{throw new ClassCastException("類型不對");}
ListTest1_Person lp=(ListTest1_Person) o;
return this.name.equals(lp.name)&&this.age==lp.age;
}
/* @Override 自動添加的方法 alt+Insert
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ListTest1_Person that = (ListTest1_Person) o;
return age == that.age &&
Objects.equals(name, that.name);
}*/
}