如果并不知道程序运行时需要多少对象,或者更复杂的方式存储对象----可以使用java集合框架
Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中
虚线为接口
实线位类
collection为接口,collections是算法(排序等)
Map接口存储一组键值对象,提供key到value的映射
List实现类(可重复,有序的)
ArrayList:长度可变的数组,在内存当中是连续的,遍历‘、随机访问元素的效率高
LinkedList:采用链表存储方法,插入删除效率高
ArrayList集合类
add()方法(是Object类型),是添加对象到集合里面
size()获取集合的长度,ArraysList的size()方法等于数组的length属性的作用
get() 于list【i】,请注意返回值为object对象,需要进行强制转换
import java.util.ArrayList;
/**
* @Author lichangxin
* @date 2020-07-26
* @Des
*/
public class NewsManger {
public static void main(String[] args) {
//创建先问标题对象
NewTitle title1=new NewTitle(1,"北京热门","author");
ArrayList list=new ArrayList();
//创建集合对象,并添加新闻标题
list.add(title1);
//获取总数,逐条打印
//ArraysList的size()方法等于数组的length属性的作用
System.out.println(list.size());
//遍历集合
//方法一:遍历ArrayList元素的下标
for (int i = 0; i < list.size(); i++) {
NewTitle title= (NewTitle) list.get(i);//等于list【i】,请注意返回值为object对象
System.out.println(title.getTitle());
}
//方法二:增强for
for (Object obj:list){
NewTitle title= (NewTitle) obj;
System.out.println(title.getTitle());
}
}
}
List的常用方法
红色为通用方法,
clear【】清空集合
isEmpty判断集合是否为空
LinkedList(唯一,无序)
通用方法如上
特有方法如下
是否可以用父类引用指向子类对象格式?
这种写法只能调用父子类共用的方法,无法调用子类特有的方法
Set接口之HashSet(无重复,无序)
使用增强for遍历Set集合
set接口不存在get()方法!!
方法一:增强for遍历
for(Object obj:set)
使用Iterator遍历(迭代器)