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 <list.size()-1; i++) {
Object obj=list.get(i);
for (int j =i+1; j <list.size(); 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);
}*/
}
网友评论