java-集合练习题01

1.按要求实现:
(1) 封装一个新闻类,包含标题和内容属性,提供get.set方法,重写toString方法,打印对象时只打印标题;
•(2) 只提供一个带参数的构造器,实例化对象时,只初始化标题:并旦实例化两个对象:
新闻一:新冠确诊病例超干万,数百万印度教信徒赴恒河“圣浴”引民众担忧

新闻二:男子突然想起2个月前钓的鱼还在网兜里,捞起一看赶紧放生

(3) 将新闻对象添加到ArrayList集合中,并且进行倒序遍历:
(4) 在遍历集合过程中,对新闻标题进行处理,超过15字的只保留前15个,然后在后边加”..
(5) 在控制台打印遍历出经过处理的新闻标题;

练习:第一遍做(没有实现3的倒序遍历和4)

package com.msbedu.collectionTest;
import java.util.*;

public class test {
    public static void main(String[] args) {
        List list=new ArrayList();
        list.add(new news("新冠确诊病例超千万,数百万印度教徒赶赴恒河"));
        list.add(new news("男子突然想起两个月前的鱼还在网兜,立马放生"));
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            Object obj =  iterator.next();
        }
        System.out.println("list="+list);

    }
}

class news {
    private String tittle;
    private String content;

    public String getTittle() {
        return tittle;
    }

    public void setTittle(String tittle) {
        this.tittle = tittle;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    @Override
    public String toString() {
        return "news{" +
                "tittle='" + tittle + '\'' +
                '}';
    }

    public news(String tittle) {
        this.tittle = tittle;
    }
}

第二次做(思路:遍历可用for循环倒序实现,(4)使用定义一个方法实现 截取用到substring方法 )

package com.msbedu.collectionTest;

import java.util.*;

public class test {
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add(new news("新冠确诊病例超千万,数百万印度教徒赶赴恒河"));
        list.add(new news("男子突然想起两个月前的鱼还在网兜,立马放生"));
        int size = list.size();

        for (int i = size - 1; i >= 0; i--) {
            //System.out.println(news.processTittle()); 不能直接取到news 用多态向下转型将
           news news = (news) list.get(i);
           System.out.println(news.processTittle(news.getTittle()));

        }
    }
}
class news {
    private String tittle;
    private String content;
    public String getTittle() {
        return tittle;
    }

    public void setTittle(String tittle) {
        this.tittle = tittle;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    @Override
    public String toString() {
        return "news{" +
                "tittle='" + tittle + '\'' +
                '}';
    }

    public news(String tittle) {
        this.tittle = tittle;
    }

    //该方法用来处理新闻标题超过15
    public static String processTittle(String tittle) {
        if (tittle == null) {
            return "";  //tittle为空直接返回空
        }
        if(tittle.length()>15){
            return tittle.substring(0,15)+"..."; //超过15 用字符串的substring方法截取+拼接
        }
        else {
            return tittle; //没有超过就直接返回标题
        }
    }
}

运行成功。

试着用迭代器逆序遍历?多态的使用?字符串的方法?面向对象编程?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值