java基础之set集合练习(HashSet,LinkedHashSet,TreeSet)

这篇具有很好参考价值的文章主要介绍了java基础之set集合练习(HashSet,LinkedHashSet,TreeSet)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1:完成以下填空:

Collection 接口的特点是     存放list与set共性内容 没有直接实现类  没有明确的存储特点要求          ;

2:List 接口的特点是元素 有 (有|无)顺序, 可 (可以|不可以)重复;

Set 接口的特点是元素 无 (有|无)顺序,不可  (可以|不可以)重复;

3:(Set)关于Set 集合描述正确的是()

A.可以利用Set 创建集合对象,存储多个对象

B.可以利用下标操作集合中的数据

C.Set 集合中所有方法继承于父接口Collection

D.以上描述都不正确

4:(List、Set)仔细阅读以下程序,关于程序描述正确的是()

java基础之set集合练习(HashSet,LinkedHashSet,TreeSet),java,java,windows,python

A.编译不通过 B. 编译通过,运行时异常

C. 编译运行都正常,输出 3 D. 编译运行都正常,输出 4

5:(Set)仔细阅读以下代码,将不正确的代地方进行改正。

java基础之set集合练习(HashSet,LinkedHashSet,TreeSet),java,java,windows,python

hashCode里面的salary 前面加强转(int)

 Equals 里面

Public boolean equals (Object o){

     If(this == o) return true;

     If(this.getClass != o.getClass || o == null) return false;

Worker w = (Worker)o;

     return name.equals(o.Name) && salary == w.salary && age ==w.age;

}

将第三个add的0删掉,set的集合不能用下标赋值

6:(Set)编程:创建一个商品(Product)类,属性:商品名,商品单价,商品的数量,商品产地。

①创建多个商品对象,存储在 Set 集合中,集合中不能出现重复商品,商品名相同即为重复,在 Product 类中添加必要的方法;

②显示所有的商品信息;

③打印输出商品价格 > 1000 的所有商品信息;

④打印售空的商品的信息;

⑤打印输出商品产地为"北京"的商品信息;

⑥输入一个商品名,查询出此类商品的信息,如果不存在,则打印商品"商场无此商品!!!"

⑦输入一个价格段,查询出集合中所有在这个价格区间的所有商品信息。

public class Product {
    private String goosName;
    private double price;
    private int quantity;//数量
    private String area;

    public Product() {
    }

    public Product(String goosName, double price, int quantity, String area) {
        this.goosName = goosName;
        this.price = price;
        this.quantity = quantity;
        this.area = area;
    }

    public String getGoosName() {
        return goosName;
    }

    public void setGoosName(String goosName) {
        if(!this.goosName.equals(goosName)){
            this.goosName = goosName;
        }
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public int getQuantity() {
        return quantity;
    }

    public void setQuantity(int quantity) {
        this.quantity = quantity;
    }

    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    @Override
    public String toString() {
        return "Produtor{" +
                "goosName='" + goosName + '\'' +
                ", price=" + price +
                ", quantity=" + quantity +
                ", area='" + area + '\'' +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Product product = (Product) o;
        return goosName.equals(product.getGoosName());
    }

    @Override
    public int hashCode() {
        return goosName.hashCode();
    }
}
public class zy_6 {
    public static void main(String[] args) {

        Set<Product> set = new HashSet<>();
        set.add(new Product("小米",1000,100,"北京"));
        set.add(new Product("小米",2000,99,"beijing"));
        set.add(new Product("红米",3000,100,"杭州"));
        set.add(new Product("锤子",4000,0,"苏州"));

        set.forEach(p -> System.out.println(p));

        for (Product product : set) {
            if(product.getPrice()>1000){
                System.out.println(product);
            }
        }

        for (Product product : set) {
            if(product.getQuantity() ==0){
                System.out.println(product);
            }
        }

        for (Product product : set) {
            if(product.getArea().equals("北京")){
                System.out.println(product);
            }
        }

        Scanner sc = new Scanner(System.in);
        System.out.println("输入要查找的手机品牌");
        String name = sc.next();
        boolean flag = false;
        for (Product product : set) {
            if(product.getGoosName().equals(name)){
                System.out.println(product);
                flag = true;
            }
        }
        if(!flag){
            System.out.println("商场无此商品!!!");
        }



        System.out.println("7======================");
        System.out.println("输入要查找的价格区间例如:1000-2000");
        String price = sc.next();
        String[] split = price.split("-");
        int price1 = Integer.parseInt(split[0]);
        int price2 = Integer.parseInt(split[1]);
        boolean flag2 = false;
        for (Product product : set) {
            double d = product.getPrice();
            if(d > price1 && d<price2){
                System.out.println(product);
                flag2 = true;
            }
        }
        if(!flag2){
            System.out.println("商场没有这个区间的商品!!!");
        }

    }
}

7;(Set)编程:随机产生 10 个 0~50 之间的整数,存储在集合中,要求集合中的数据不能重复。知识补充: Random rd= new Random(); //Random 位于 java.util 包中

int n = rd.nextInt(n); //0~n -1之间的整数文章来源地址https://www.toymoban.com/news/detail-816874.html

public class zy_7 {
    public static void main(String[] args) {
        Set<Integer> set = new HashSet<>();
        Random r =  new Random();
        while (set.size()<50){
            int n = r.nextInt(50+1);
            set.add(n);
        }
        System.out.println(set.size());
    }
}

8;(Set)编程:键盘输入一个字符串,利用集合去除其重复字符,打印输出最终不同的字符。

package com.by.homework4;

import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Scanner;
import java.util.Set;

public class Test8 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入字符串");
        String str=sc.next();
        String []strs=str.split("");
        Set<String> set=new LinkedHashSet<>();

        for (int i = 0; i < strs.length; i++) {
            set.add(strs[i]);
        }
        set.forEach(s -> System.out.print(s));
    }
}

9:使用Set集合完成List练习题的最后一题

public class zy_9 {
    public static void main(String[] args) {

        Set<Student> set = new HashSet<>();


        Scanner sc = new Scanner(System.in);
        while (true){
            System.out.println("输入学生信息,格式为:张三/18/男/99.5    输入:0退出");
            String s = sc.next();
            if(s.equals("0")){
                break;
            }
            String[] ss = s.split("/");
            Double score = ss[3].equals("null") ? null : Double.valueOf(ss[3]);
            set.add(new Student(ss[0],Integer.parseInt(ss[1]),ss[2],score));
        }


        System.out.println("1===================");
        for (Student s : set) {
            if(s.getScore() != null && s.getScore()>=80){
                System.out.println(s);
            }
        }

        System.out.println("2===================");
        for (Student s : set) {
            if(s.getScore() == null){
                System.out.println("没有参加考试的学生:"+s);
            }
        }

        System.out.println("5===================");
        Set<Student> set2 = new TreeSet<>(new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                if(o1.getScore()<o2.getScore()){
                    return 1;
                }else if(o1.getScore()>o2.getScore()){
                    return -1;
                }else {
                    return 0;
                }
            }
        });
        set2.addAll(set);
        for (Student student : set2) {
            System.out.println(student);
        }

    }
}

到了这里,关于java基础之set集合练习(HashSet,LinkedHashSet,TreeSet)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java02-迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类

    目录 什么是遍历? 一、Collection集合的遍历方式 1.迭代器遍历 方法 流程 案例 2. foreach(增强for循环)遍历 案例 3.Lamdba表达式遍历 案例 二、数据结构 数据结构介绍 常见数据结构 栈(Stack) 队列(Queue) 链表(Link) 散列表(Hash Table) 树(Tree) List接口 ArraysList集合 Linked

    2024年02月14日
    浏览(30)
  • java list 快速去重 有序 重复 LinkedHashSet HashSet

     如果list中装的是简单元素,int 类型,string类型,想要去重,并且保持在list中的顺序,最快的方式如下: 使用 LinkedHashSet,去重加有序。 使用 HashSet,只去重,但顺序任意。 参考 Java中List集合对象去重及按属性去重的8种方法_java list对象去重_//承续缘_纪录片的博客-CSDN博客

    2024年02月13日
    浏览(32)
  • 49天精通Java,第24天,Java链表、散列表、HashSet、TreeSet

    大家好,我是哪吒。 从数组中间删除一个元素开销很大,其原因是向数组中插入元素时,此元素之后的所有元素都要向后端移动,删除时也是,数组中位于被删除元素之后的所有元素都要向数组的前端移动。 此时,在Java中,可以通过链表解决这个问题。 数组是在连续的存储

    2023年04月08日
    浏览(33)
  • Java基础——Set集合实现类

    (1)Set集合实现类特点: HashSet:无序,不重复,无索引。 LinkedHashSet:有序,不重复,无索引。 TreeSet:排序,不重复,无索引。  (2)HashSet集合 1.底层原理: HashSet集合底层采取哈希表存储的数据。 哈希表是一种对于增删改查数据性能都较好的结构。 2.哈希表的组成: 

    2023年04月13日
    浏览(28)
  • 【Java练习题汇总】《第一行代码JAVA》网络编程篇&集合体系篇&JDBC篇,汇总Java练习题——Socket 与ServerSocket、List和Set、Map~

    一、填空题 在类集中存放单值的最大父接口是___________ ,存放一对值的最大父接口是___________ 。 ___________ 接口保存的数据是不允许重复的,并且___________ 子类是可以排序的,根据___________ 排序。 Java 类集可以使用的输出方式是___________ 、___________ 、___________ 和___________ 。 在

    2024年02月13日
    浏览(33)
  • Java开发基础系列(十三):集合对象(Set接口)

    😊 @ 作者: 一恍过去 💖 @ 主页: https://blog.csdn.net/zhuocailing3390 🎊 @ 社区: Java技术栈交流 🎉 @ 主题: Java开发基础系列(十三):集合对象(Set接口) ⏱️ @ 创作时间: 2023年07月27日 HashSet: 基于哈希表实现的集合,不保证元素的顺序。 LinkedHashSet: 基于哈希表和双向链表实现的

    2024年02月15日
    浏览(25)
  • Java零基础学习20:集合的练习

    编写博客目的:本系列博客均根据B站黑马程序员系列视频学习和编写目的在于记录自己的学习点滴,方便后续回忆和查找相关知识点,不足之处恳请各位有缘的朋友指正。 一、查找id对应的集合索引 二、返回手机价格低于三千的手机

    2024年01月25日
    浏览(28)
  • Java基础六 - Collection集合List、Set、Queue,Map

    1. List - ArrayList、LinkedList、Vector ArrayList         2. LinkedList         3. Vector         4. 常见使用方法 2. Set - HashSet、LinkedHashSet、TreeSet 1. HashSet 2. LinkedHashSet 3. TreeSet 4. 常用方法 3. Map - HashMap、TreeMap、LinkedHashMap、Hashtable 1. HashMap 2. LinkedHashMap 3. TreeMap 4. Hashtable 5.

    2024年02月14日
    浏览(34)
  • 【JavaSE专栏51】Java集合类HashSet解析,基于哈希表无序非重元素集合

    作者主页 :Designer 小郑 作者简介 :3年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型,CSDN学院、蓝桥云课认证讲师。 主打方向 :Vue、SpringBoot、微信小程序 本文讲解了 Java 中集合类 HashSet 的语法、使用说明和应用场景,并给出了样例代码。

    2024年02月16日
    浏览(53)
  • 【Java基础教程】(四十八)集合体系篇 · 上:全面解析 Collection、List、Set常用子接口及集合元素迭代遍历方式~【文末送书】

    掌握 Java 设置类集的主要目的以及核心接口的使用; 掌握 Collection 接口的作用及主要操作方法; 掌握 Collection 子接口 List、Set 的区别及常用子类的使用; 掌握 Map 接口的定义及使用; 掌握集合的4种输出操作语法结构; 掌握 Properties类的使用 ; 了解类集工具类 Collections 的作

    2024年02月15日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包