文章目录
- 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());//3c.remove("hello");System.out.println(c);//[Java, 难学]System.out.println(c.contains("难学"));//truec.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()); //helloSystem.out.println(it.next()); //JavaSystem.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"));//输出:s2System.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}
}