ArrayList中两种去除重复元素的方法
第一种方式:
package www.exercise;
import java.util.ArrayList;
import java.util.Iterator;
public class Test023 {
public static void main(String[] args) {
ArrayList al1 = new ArrayList();
al1.add("java01");
al1.add("java02");
al1.add("java02");
al1.add("java03");
al1.add("java04");
al1.add("java03");
al1.add("java05");
//建立一个人新的集合
ArrayList al2 = new ArrayList();
Iterator it = al1.iterator();
while(it.hasNext())
{
Object obj = it.next();
if(!al2.contains(obj))
{
al2.add(obj);
}
}
System.out.println(al2);
}
}
一.ArrayList中去除重复元素的两种方式
第二种方式:
package www.exercise;
import java.util.ArrayList;
public class Test03 {
public static void main(String[] args) {
ArrayList al1 = new ArrayList();
al1.add("java01");
al1.add("java02");
al1.add("java02");
al1.add("java02");
al1.add("java02");
al1.add("java02");
al1.add("java03");
al1.add("java04");
al1.add("java03");
al1.add("java05");
//利用选择排序的原理
for (int x = 0; x <al1.size()-1; x++) {
for(int y = x+1; y<al1.size(); y++)
{
//第一个元素和其他元素一一比较
//然后,第二个元素和其他元素一一比较
//以此类推....
if((al1.get(y)).equals(al1.get(x)))
{
//如果相同,就删除
al1.remove(y);
//当多个元素重复出现,比较可能出现错误,为了避免出错,
//再比较一次
y--;
}
}
}
System.out.println(al1);
}
}
三十八.自定义Student存入集合,并去除重复元素
package www.exercise;
public class Student1 {
private int age;
private String name;
public Student1() {}
public Student1(int age, String name) {
super();
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
return "Student1 [age=" + age + ", name=" + name + "]";
}
public boolean equals(Object obj)
{
if(this == obj)
{
return true;
}
if(obj instanceof Student1)
{
Student1 s = (Student1)obj;
return (this.getName() == s.getName()) && (this.getAge() == s.getAge());
}
return false;
}
}
package www.exercise;
import java.util.ArrayList;
import java.util.Iterator;
public class Student1Demo {
public static void main(String[] args) {
ArrayList<Student1> at = new ArrayList<Student1>();
//自定义学生对象
Student1 s1 = new Student1(23,"张三");
Student1 s2 = new Student1(22,"张五");
Student1 s3 = new Student1(23,"张三");
Student1 s4 = new Student1(20,"张四");
Student1 s5 = new Student1(26,"张六");
Student1 s6 = new Student1(29,"张七");
at.add(s1);
at.add(s2);
at.add(s3);
at.add(s4);
at.add(s5);
at.add(s6);
//定义一个新的集合
ArrayList<Student1> at1 = new ArrayList<Student1>();
Iterator<Student1> it = at.iterator();
while(it.hasNext())
{
Student1 s = it.next();
if(!at1.contains(s))
{
at1.add(s);
}
}
for(int x = 0; x<at1.size(); x++)
{
Student1 st = at1.get(x);
System.out.println(st);
}
}
}
二.使用LinkedList模拟栈结构
package www.exercise;
import java.util.LinkedList;
/**
* 使用LinkedList模拟栈结构:
* 编写一个类MyStack,里面提供如下方法:
*
压栈 push()
*
弹栈pop()
*
* 获取栈里面有多少元素size()
*
* @author itcast
public class MyStack {
private LinkedList li = new LinkedList();
public MyStack() {
}
public void push(Object obj)
{
li.addFirst(obj);
}
public Object pop()
{
return li.removeFirst();
}
public int size()
{
return li.size();
}
@Override
public String toString() {
return "MyStack [li=" + li + "]";
}
}
package www.exercise;
public class MyStackDemo {
public static void main(String[] args) {
MyStack ms = new MyStack();
ms.push("java");
ms.push("hello");
ms.push("world");
System.out.println(ms.toString());
System.out.println(ms.pop());
System.out.println(ms.pop());
System.out.println(ms.pop());
System.out.println(ms.size());
}
}
ArrayList 和 LinkedList
最新推荐文章于 2024-07-23 18:49:38 发布