day10

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day10相关的知识,希望对你有一定的参考价值。

学习内容:

  1. List长度可变,可存储重复值,可以存储null;

    ArrayList,使用数组实现,增删性能差,查询快;LinkedList,使用链表实现,增删快,查询慢。

-------------------------------------------------------------

作业:重写equals

public class CollectionDemo {
	public static void main(String[] args) {
		Student s1 = new Student("tom", 12, 1);
		Student s2 = new Student("tom1", 12, 1);
		Student s3 = new Student("tom", 12, 1);
		System.out.println(s1 == s2);
		System.out.println(s1.equals(s3));
		System.out.println();
		List<Student> ss = new ArrayList<>();
		for (int i = 0; i < 100; i++) {
			ss.add(new Student("tom" + i, i, i % 2 == 0 ? 0 : 1));
		}
        System.out.println(ss.contains(new Student("tom10",10,0)));
        System.out.println(ss.remove(new Student("tom10",10,0)));
        System.out.println(ss.contains(new Student("tom10",10,0)));
	}
}

class Student {
	private String name;
	private int age;
	private int sex;

	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;
	}

	public int getSex() {
		return sex;
	}

	public void setSex(int sex) {
		this.sex = sex;
	}

	public Student(String name, int age, int sex) {
		super();
		this.name = name;
		this.age = age;
		this.sex = sex;
	}

	@Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}
		if (this == obj) {
			return true;
		}
		if (obj.getClass() == Student.class) {
			Student student = (Student) obj;
			if (this.getName() != null) {
				if (this.getName().equals(student.getName())) {
					if (this.getAge() == student.getAge()) {
						if (this.getSex() == student.getSex()) {
							return true;
						}
					}
				}
			} else {
				if (student.getName() == null) {
					if (this.getAge() == student.getAge() && this.getSex() == student.getSex()) {
						return true;
					}
				}
			}
		}
		return false;
	}
}

这样可以判断,list在调用contains(obj),remove(obj)等方法时,都会调用equal()来判断集合中是否存在这个对象

以上是关于day10的主要内容,如果未能解决你的问题,请参考以下文章

在python中添加24小时

VSCode自定义代码片段10—— 数组的响应式方法

[code] PTA 胡凡算法笔记 DAY039

高效Web开发的10个jQuery代码片段

高效Web开发的10个jQuery代码片段

C#程序员经常用到的10个实用代码片段 - 操作系统