文章目录
- 1. 集合体系结构
- 2. Collection集合概述和使用
- 3. Collection集合的遍历
- 4. 小案例分析
- 5. List集合概述和特点
- 6. List集合的特有方法
- 7. 小案例分析
1. 集合体系结构
集合体系结构如下所示。在实现时我们需要使用接口的具体实现类。
2. Collection集合概述和使用
1. Collection集合概述:(1) 是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素。 (2) JDK不提供此接口的任何直接实现,它提供更具体的子接口Set和List实现。
2. 创建Collection集合的对象:(1) 多态的方式。 (2) 具体的实现类ArrayList。
3. Collection集合常用方法:
方法名 | 说明 |
---|---|
boolean add(E e) | 添加元素 |
boolean remove(Object o) | 从集合中移除指定元素 |
void clean() | 清空集合元素 |
boolean contains(Object o) | 判断集合中是否存在指定元素 |
boolean isEmpty() | 判断集合是否为空 |
int size() | 集合的长度,也就是集合中元素的个数 |
import java.util.ArrayList;
import java.util.Collection;
public class CollectionDemo {
public static void main(String[] args) {
Collection<String> c=new ArrayList<String >();
c.add("hello");
c.add("Java");
c.add("难学");
System.out.println(c);//[hello, Java, 难学]
System.out.println(c.size());//3
c.remove("hello");
System.out.println(c);//[Java, 难学]
System.out.println(c.contains("难学"));//true
c.clear();
System.out.println(c);//[]
System.out.println(c.isEmpty());//true
}
}
3. Collection集合的遍历
1. Iterator:迭代器,集合的专用遍历方式。迭代器是通过集合的iterator()
方法得到的,所以说它是依赖与集合而存在的。
2.其中的常用方法:(1) E next()
:返回迭代中的下一个元素。(2) boolean hasNet()
:如果迭代具有更多元素,则返回True。
3. 代码块举例:
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class CollectionDemo {
public static void main(String[] args) {
Collection<String> c=new ArrayList<String >();
c.add("hello");
c.add("Java");
c.add("难学");
Iterator<String> it=c.iterator();
System.out.println(it.next()); //hello
System.out.println(it.next()); //Java
System.out.println(it.next()); //难学
//System.out.println(it.next()); 会报错
if(it.hasNext()){ //会判断有没有元素,没有就不执行
System.out.println(it.next());//没有返回
}
}
}
4. 小案例分析
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;
}
}
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Demo {
public static void main(String[] args) {
Collection<Student> c=new ArrayList<Student>();
Student s1=new Student("张三",18);
Student s2=new Student("李四",19);
Student s3=new Student("王五",20);
c.add(s1);
c.add(s2);
c.add(s3);
Iterator<Student> it=c.iterator();
while(it.hasNext()){
Student s=it.next();
System.out.println(s.getName()+" 年龄为:"+s.getAge());
//张三 年龄为:18
//李四 年龄为:19
//王五 年龄为:20
}
}
}
5. List集合概述和特点
1. List集合概述:(1) 有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素。 (2) 与Set集合不同,列表通常允许重复的元素。
2. List集合特点:(1)有序:存储和取出的元素顺序一致。 (2) 可重复:存储的元素可以重复。
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
public class Demo {
public static void main(String[] args) {
List<String> c=new ArrayList<String>();
c.add("s1");
c.add("s2");
c.add("s3");
c.add("s3");
Iterator<String> it=c.iterator();
while(it.hasNext()){
System.out.println(it.next());
//s1
//s2
//s3
//s3
}
}
}
6. List集合的特有方法
方法名 | 说明 |
---|---|
void add(int index, E element) | 在此集合中的指定位置插入指定的元素 |
E remove(int index) | 删除指定索引处的元素,返回被删除的元素 |
E set(int index, E element) | 修改指定索引处的元素,返回被修改的元素 |
E get(int index) | 返回指定索引处的元素 |
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
public class Demo {
public static void main(String[] args) {
List<String> c=new ArrayList<String>();
c.add("s1");
c.add("s2");
c.add("s3");
c.add("s3");
Iterator<String> it=c.iterator();
while(it.hasNext()){
System.out.println(it.next());
//s1
//s2
//s3
//s3
}
c.add(1,"插入");
System.out.println(c);//输出:[s1, 插入, s2, s3, s3]
System.out.println(c.remove(1));//输出:插入
System.out.println(c);//输出:[s1, s2, s3, s3]
System.out.println(c.set(1,"s22"));//输出:s2
System.out.println(c);//输出:[s1, s22, s3, s3]
System.out.println(c.get(3));//输出:s3
}
}
7. 小案例分析
package BliJava;
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;
}
}
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
public class Demo {
public static void main(String[] args) {
List<Student> list=new ArrayList<Student>();
Student s1=new Student("张三",18);
Student s2=new Student("李四",19);
Student s3=new Student("王五",20);
list.add(s1);
list.add(s2);
list.add(s3);
//第一种迭代方式
Iterator<Student> it=list.iterator();
while(it.hasNext()){
Student s=it.next();
System.out.println(s.getName()+" "+s.getAge());
}
//第二种迭代方式
for(int i=0;i<list.size();i++){
Student s=list.get(i);
System.out.println(s.getName()+" "+s.getAge());
}
//张三 18
//李四 19
//王五 20
//张三 18
//李四 19
//王五 20
}
}