Java集合练习

一、集合简介

Java 集合可分为 Collection 和 Map 两种体系

1、Collection接口

1、在java.util包中,该接口存储的是一组不唯一,无序的对象。

2、List接口:存储的是一组不唯一,有序(插入顺序)的对象。
2.1、ArrayList:存储数据是有序、可重复的,查询快增删慢。
2.2、add(Object o):增加对象
2.3、add(数字,名称):在指定的下表位置添加对象。例:add(1,ouou):表示在下标为1的位置添加ouou对象。
2.4、get(i):根据下标获取对象(get是Object类型,使用时根据实际情况进行强转即可)
2.5、size():获取集合中的长度
2.6、contains(yaya):查看是否包含这个yaya对象,返回值是boolean类型。
2.7、Linkist:存储数据是无序的、不可重复的,查询慢增删快。
2.8、Vector:古老的实现类,线程是安全的,效率是低下的。

3、Set:元素无序、不可重复的集合。
3.1、特点:无序,唯一
3.2、HashSet:Set set = new HashSet();
3.3、TreeSet

2、Map接口

1、双列数据,保存具有映射关系“key-value对”的集合。

2、Map<Key,Value>(Key要是唯一的)

3、HashMap:

Map map = new HashMap();    //定义一个Map接口类型的变量,引用一个实现类
map.put(“CN”,”中国”);		//添加。CN是Key,中国是Value
System.out.println(map.containKey(“CN”));
System.out.println(map.cotainValue(“日本”));
System.out.println(map.values());
System.out.println(map.remove(“日本”));

3、使用集合框架的好处

可以理解成是一个动态的数组。

二、练习

1、题目:

封装一个新闻类,包含标题、作者、新闻内容和发布时间,新闻标题如下:

新闻一:中国多地遭雾霾笼罩空气质量再成热议话题
新闻二:民进党台北举行“火大游行”
新闻三:春节临近北京“卖房热”
新闻四:春节临近北京“卖房热”

完成如下要求(共50分,每小题10分):
1)完成对新闻类的设计,要求在初始化新闻类对象时 ,通过构造传参的形式对新闻标题赋值,并要求实例化四个对象,标题内容如题。
2)要求打印新闻对象时,直接打印新闻标题;
3)要求使用equals方法比较新闻时,只要标题相同,就认为是同一新闻,请输出新闻一与新闻二的比较结果,新闻三与新闻四的比较结果。
4)将新闻对象存入HashSet集合中,并且遍历集合,打印新闻类对象;
5)打印集合中新闻数量。

2、代码

1、先创建一个新闻类,即News类

public class News {
    private String title;   //标题
    private String author;  //作者
    private String content; //内容
    private int time;   //发布时间

    //仅含标题参数的构造函数
    public News1(String title) {
        this.title = title;
    }

    //set/get方法
    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getContent() {
        return content;
    }

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

    public int getTime() {
        return time;
    }

    public void setTime(int time) {
        this.time = time;
    }

    @Override
    public String toString() {
        return "title='" + title + '\'' +
                ", author='" + author + '\'' +
                ", content='" + content + '\'' +
                ", time=" + time;
    }
}

2、在创建一个测试类,即TestNews类

import java.util.HashSet;

public class TestNews {
    public static void main(String[] args) {
        //实例化四个对象
        News news1 = new News("中国多地遭雾霾笼罩空气质量再成热议话题");
        News news2 = new News("民进党台北举行“火大游行”");
        News news3 = new News("春节临近北京“卖房热”");
        News news4 = new News("春节临近北京“卖房热”");

        //将新闻对象存入HashSet集合中
        HashSet hashSet = new HashSet();
        hashSet.add(news1);
        hashSet.add(news2);
        hashSet.add(news3);
        hashSet.add(news4);
        //打印新闻标题
        for (Object news : hashSet){
            News news5 = (News) news;
            System.out.println(news5.getTitle());
        }

        //要求使用equals方法比较新闻时,只要标题相同,就认为是同一新闻
        //新闻一与新闻二的比较结果
        System.out.println("新闻一与新闻二的比较结果是:"+(news1.getTitle()).equals((news2.getTitle())));
        //news1.equals(news2);
        //新闻三与新闻四的比较结果
        System.out.println("新闻三与新闻四的比较结果是:"+(news3.getTitle()).equals((news4.getTitle())));
        //news3.equals(news4);

        //遍历集合,打印新闻类对象
        for (Object news : hashSet){
            News news6 = (News) news;
            System.out.println(news6.toString());
        }

        //打印集合中新闻数量
        System.out.println("集合中的新闻数量是:"+hashSet.size());
    }
}

3、结果截图

Alt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一小人物@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值