集合
文章目录
前言
了解Java集合框架,使用ArrayList、ListedList存取数据,了解ArrayList与LinkedList的区别
一、Java集合框架的概念
Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中
二、Java集合框架的内容
1、Collection 接口存储一组不唯一,无序的对象
2、List 接口存储一组不唯一,有序(插入顺序)的对象
3、Set 接口存储一组唯一,无序的对象
4、Map接口存储一组键值对象,提供key到value的映射
三、List接口的实现类
List 接口存储一组不唯一,有序(插入顺序)的对象
1、ArrayList
ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高
2、LinkedList
LinkedList采用链表存储方式,插入、删除元素时效率比较高
四、ArrayList集合类
1、确定存储方式
1)ArrayList类是List接口的一个具体实现类
2)ArrayList对象实现了可变大小的数组
3)随机访问和遍历元素时,它提供更好的性能
2、确定存储对象
1)创建类型
2)包含属性
3、具体实现
见如下案例代码
4、ArrayList常用方法
五、LinkedList集合类
1、确定存储方式
1)LinkedList类是List接口的一个具体实现类
2)LinkedList 类用于创建链表数据结构
3)插入或者删除元素时,它提供更好的性能
2、具体实现
见如下案例代码
3、LinkedList常用方法
六、案例代码
public class NewsTitle {
private int id;
private String name;
private String author;
public NewsTitle() {
}
public NewsTitle(int id, String name, String author) {
this.id = id;
this.name = name;
this.author = author;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
@Override
public String toString() {
return "NewsTitle{" +
"id=" + id +
", name='" + name + '\'' +
", author='" + author + '\'' +
'}';
}
}
遍历集合
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListTest01 {
/*遍历集合*/
public static void main(String[] args) {
// 创建5个NewsTitle对象
NewsTitle newsTitle1 = new NewsTitle(101,"统一遥控器","作者1");
NewsTitle newsTitle2 = new NewsTitle(102,"火箭发射器","作者2");
NewsTitle newsTitle3 = new NewsTitle(103,"洗衣机控制","作者3");
NewsTitle newsTitle4 = new NewsTitle(104,"自动驾驶系统","作者4");
NewsTitle newsTitle5 = new NewsTitle(105,"小米SU7发布","作者5");
// 准备容器 使用ArrayList
// 查看ArrayList构造方法
// 使用ArrayList的无参构造方法创建对象
ArrayList arrayList = new ArrayList();
// 调用方法将数据存储到容器中
// public boolean add(E e)将指定的元素添加到此列表的尾部
arrayList.add(newsTitle1);
arrayList.add(newsTitle2);
arrayList.add(newsTitle3);
arrayList.add(newsTitle4);
arrayList.add(newsTitle1);
// 查看集合中元素的个数
// public int size()返回此列表中的元素数
int size = arrayList.size();
System.out.println("集合中的元素个数:"+size); // 集合中的元素个数:5
// 获取集合中第一个元素
// public E get(int index)返回此列表中指定位置上的元素
Object obj1 = arrayList.get(0);
// 将obj转化为实际类型NewsTitle,使用向下转型实现
NewsTitle nt1 = (NewsTitle) obj1;
System.out.println(nt1); // NewsTitle{id=101, name='统一遥控器', author='作者1'}
// System.out.println(obj1); // NewsTitle{id=101, name='统一遥控器', author='作者1'}
// 输出结果一样是因为重写toString方法
// 获取集合中第二个元素
Object obj2 = arrayList.get(1);
NewsTitle nt2 = (NewsTitle) obj2;
System.out.println(nt2);
// 获取集合中第三个元素
Object obj3 = arrayList.get(2);
NewsTitle nt3 = (NewsTitle) obj3;
System.out.println(nt3);
// 获取集合中第四个元素
Object obj4 = arrayList.get(3);
NewsTitle nt4 = (NewsTitle) obj4;
System.out.println(nt4);
// 获取集合中第五个元素
Object obj5 = arrayList.get(4);
NewsTitle nt5 = (NewsTitle) obj5;
System.out.println(nt5);
System.out.println("------ ------ ------");
// 通过获取集合中的元素,可以使用遍历方式输出集合中所有元素
for (int i = 0; i < arrayList.size(); i++) {
Object object = arrayList.get(i);
NewsTitle newsTitle = (NewsTitle) object;
System.out.println(