LinkedList的独有方法

例题
新闻管理系统,需求如下:
可以添加头条新闻标题
获取头条和最末条新闻标题
可以删除末条新闻标题
思路:存储方式选择:元素不确定(使用集合类)
需要在列表的头或尾添加、删除元素
确定存储方式:LinkedList类是List接口的一个具体实现类
LinkedList类用于创建链表数据结构
插入或者删除元素时,它提供更好的性能
具体实现:1.如何把新闻标题存入LinkedList add方法
2.如何获取LinkedList的长度 size方法
3.获取LinkedList里的元素 get方法
/对新闻标题的存储及操作(LinkedList)
public class NewsMgr {
public static void main(String[] args) {
//创建新闻标题对象
NewsTitle title1 = new NewsTitle(1, "北京热门景点故宫1", "author");
NewsTitle title2 = new NewsTitle(2, "北京热门景点长城2", "author");
NewsTitle title3 = new NewsTitle(3, "北京热门景点北海3", "author");
NewsTitle title4 = new NewsTitle(4, "北京热门景点颐和园4", "author");
NewsTitle title5 = new NewsTitle(5, "北京热门景点天安门5", "author");
//创建集合对象,并且将新闻标题加入到集合中
//是否可以用父类引用指向子类对象的形式?
// List list = new LinkedList();这种写法只能调用父子类共用的方法,无法调用子类独有的方法
LinkedList list = new LinkedList();
//依次在列表末尾添加元素
list.add(title1);
list.add(title2);
list.add(title3);
list.add(title4);
//在指定位置插入某个特定元素
list.add(1, title5);
//插入头条新闻标题
NewsTitle title6=new NewsTitle(6,"北京热门景点国家博物馆6","author");
//在列表首部添加元素
list.addFirst(title6);
//获取新闻标题的总数
System.out.println("新闻标题一共有" + list.size() + "条");
//逐条打印新闻标题的名称
System.out.println("****************************");
//方法一:逐条遍历LinkedList元素的位置(下标)
for (int i = 0; i < list.size(); i++) {
NewsTitle title = (NewsTitle) list.get(i);//等同于list[i],请注意,返回值为Object,要进行强制数据类型转换
System.out.println(title.getTitle() + title.getAuthor());
}
//方法二:增强型for
System.out.println("****************************");
for (Object obj : list) {
NewsTitle title = (NewsTitle) obj;
System.out.println(title.getTitle() + "-" + title.getAuthor());
}
//获取头条和最末条新闻标题
System.out.println("****************************");
NewsTitle titleFirst=(NewsTitle)list.getFirst();
System.out.println("头条新闻信息:"+titleFirst.getTitle()+"-"+titleFirst.getAuthor());
NewsTitle titleLast=(NewsTitle)list.getLast();
System.out.println("最末条新闻信息:"+titleLast.getTitle()+"-"+titleLast.getAuthor());
//删除最末条新闻标题
list.removeLast();
System.out.println("****************************");
System.out.println("删除后的新闻标题一共有"+list.size()+"条");
for (Object obj : list) {
NewsTitle title = (NewsTitle) obj;
System.out.println(title.getTitle() + "-" + title.getAuthor());
}
}

LinkedList与ArrayList-相同点:同为List的实现类,元素有序,不唯一、长度可变
共有Collection及Listde 通用方法
LinkedList与ArrayList-不同点:ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历 元素和随机访问元素的效率比较高
LinkList采用链表存储方式,插入、删除元素时效率比较高。
本文介绍了如何使用LinkedList存储和操作新闻标题。通过创建LinkedList对象并添加、插入、获取及删除元素,展示了LinkedList在新闻管理系统中的高效性能,特别是在插入和删除操作上。同时,对比了LinkedList与ArrayList的区别,强调了LinkedList在链表存储方式下对于频繁插入和删除的优势。
305

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



