collection的继承体系

常用的方法:
1. 添加功能
boolean add(E e)
//添加一个元素
boolean addAll(Collection c)
// 添加一批元素
2. 删除功能
boolean remove(Object o)
//删除一个元素
3. 判断功能
boolean contains(Object o)
/判断集合是否包含指定的元素
boolean isEmpty()
//判断集合是否为空(集合中没有元素)
4. 获取功能
int size()
//获取集合的长度
5. 转换功能
Object[] toArray()
//把集合转换为数组
遍历集合的方式
1.普通的for循环遍历
ArrayList<String> list=new ArrayList<>();
c.add("Hello");
c.add("Java");
c.add("World");
for(int i=0;ilist.size();i++){
String s=(String)list.get(i);
System.out.println(s);
}
2.foreach(高级for)循环遍历(迭代器的简化模式)
ArrayList<String> list=new ArrayList<>();
c.add("Hello");
c.add("Java");
c.add("World");
for(String s:list){
System.out.println(s);
}
- 迭代器遍历
Collection<String> c=new ArrayList<String>();
c.add("Hello");
c.add("Java");
c.add("World");
//获取迭代器对象
Iterator<String> it=c.iterator();
//hasNext()判断是否有下一个元素,如果有就用next()获取
while(it.hasNext()){
//获取下一个元素
String s=it.next();
System.out.println(s);
}
常见的数据结构
1.数组结构:查询快,增删慢;
2.链表结构:查询慢,增删快;
3.栈和队列:栈:先进后出;队列:先进先出。
HashSet集合
1.HashSet的底层数据结构是哈希表,能保证元素的唯一性。
2.保证元素唯一性的方式是重写元素equals和hashCode()方法。
//自定义一个学生类
public class Student {
private String name;
private int age;
public Student() {
}
public Student(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 name+"..."+age;
}
//下面是复写的hashCode()和equals方法
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age &&
Objects.equals(name, student.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
public class HashSetDemo{
HashSet<Student> set=new HashSet<>();
set.add(Student("张三",20));
set.add(Student("李四",30));
set.add(Student("李四",30));//这个元素和上一个元素姓名和年龄相同,经过equals和hashCode判断认为是同一个元素。
}
4.由于HashSet集合的不可重复性(先比较hashCode,如果hashCode相同则比较equals,如果equals相同则判定重复),所以第二个李四不能增加到集合当中。
本文详细介绍了Java集合框架中collection的继承体系,包括常用方法如添加、删除、判断、获取和转换功能。同时,深入探讨了遍历集合的三种方式:普通for循环、foreach循环和迭代器遍历。此外,文章还对比了数组、链表、栈和队列的数据结构特性,并重点讲解了HashSet集合的原理及其实现元素唯一性的方法。
6万+

被折叠的 条评论
为什么被折叠?



