栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

实验6 控制台程序设计(集合类)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

实验6 控制台程序设计(集合类)

一、上机目的

  1.熟练掌握控制台程序设计及执行方法。

  2.掌握异常处理的方法及使用。

       3.了解JAVA集合类框架的结构。

       4.掌握类List、ArraryList、HashMap、HashSet等常用类的使用方法。

二、上机内容

1、对上机4中的Circle类,修改圆的半径的输入方式为从键盘上输入,为防止输入负数,请通过throws和throw设计出一旦出现负数时的异常处理方法,并通过本题的测试类进行测试。

NumException类:

public class NumException extends Exception{
	public NumException() {
		
	}
	
	public NumException(String message) {
		super(message);
	}
}

Shape类:

public interface Shape {
	double getArea();
	double getPerimeter();
}

Circle类:

public class Circle implements Shape{
	private double radius;
	
	public Circle() {
		
	}
	
	public Circle(double radius) throws NumException{
		if(radius <0) {
			throw new NumException("圆的半径不能小于0");
		}
		this.radius=radius;
	}
	
	public void setRadius(double radius) {
		this.radius=radius;
	}
	
	public double getRadius() {
		return radius;
	}
	
	public double getArea() {
		return getRadius()*getRadius()*Math.PI;
	}
	
	public double getPerimeter() {
		return 2*getArea()*Math.PI;
	}
	
	public String toString() {
		return "radius="+radius+",area="+getArea()+",perimeter="+getPerimeter();
	}
}

CircleTest类:

import java.util.Scanner;

public class CircleTest {
	public static void main(String[] args) {
		System.out.println("请输入一个半径值:");
		Scanner in=new Scanner(System.in);
		int radius=in.nextInt();
		try {
			Circle c1=new Circle(radius);
			System.out.println(c1.toString());
		} catch (NumException e) {
			e.printStackTrace();
		}
	}
}

2、对例题11.8中的book类,创建10个相应的对象,分别用LinkedList、ArrayList、HashSet、HashMap类的对象来存储这10个对象,遍历输出所有对象。

3、修改题2中的Book类实现Comparable接口,该接口中对isbn进行排序,创建5个相应的对象,用TreeSet类的对象来存储这5个对象,输出存储的这5个对象(排序后)。

结合2、3两点的代码如下:

import java.util.*;

public class Book implements Comparable {
    private String isbn;
    private String title;
    private String author;
    private final static Book[] books = generateData();

    public static Book[] generateData () {
        Book[] books = new Book[10];
        for (int i = 0; i < 10; i++) {
            Book book = new Book(i + 1 + "", "书本" + i, "lwy");
            books[i] = book;
        }
        return books;
    }

    public static void linkedList() {
        List bookLinkedList = new LinkedList<>();
        for (int i = 0; i < books.length; i++) {
            bookLinkedList.add(books[i]);
        }
        bookLinkedList.stream().forEach(System.out::println);
    }

    public static void arrayList() {
        List bookArrayList = new ArrayList<>();
        for (int i = 0; i < books.length; i++) {
            bookArrayList.add(books[i]);
        }
        bookArrayList.stream().forEach(System.out::println);
    }

    public static void hashSet() {
        Set bookHashSet = new HashSet<>();
        for (int i = 0; i < books.length; i++) {
            bookHashSet.add(books[i]);
        }
        bookHashSet.stream().forEach(System.out::println);
    }

    public static void hasMap() {
        Map bookHashMap = new HashMap<>();
        for (int i = 0; i < books.length; i++) {
            bookHashMap.put(books[i].isbn,books[i]);
        }
        for (String key : bookHashMap.keySet()) {
            System.out.println(bookHashMap.get(key));
        }
    }

    public static void treeSet() {
        TreeSet treeSet = new TreeSet();
        for (int i = 0; i < books.length; i++) {
            treeSet.add(books[i]);
        }
        treeSet.stream().forEach(System.out::println);
    }

    public String getIsbn() {
        return isbn;
    }

    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

    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 Book(String isbn, String title, String author) {
        this.isbn = isbn;
        this.title = title;
        this.author = author;
    }

    @Override
    public String toString() {
        return "Book{" +
                "isbn='" + isbn + ''' +
                ", title='" + title + ''' +
                ", author='" + author + ''' +
                '}';
    }

    @Override
    public int compareTo(Book o) {
        return this.isbn.compareTo(o.isbn);
    }

    public static void main(String[] args) {
    	
    	System.out.println("linkedList");
        linkedList();
        System.out.println("hashSet");
        arrayList();
        hashSet();
        System.out.println("hasMap");
        hasMap();
        System.out.println("treeSet");
        treeSet();
    }
}

4、创建MyComparatorForName类实现Comparator接口,该类中对Book类对象中的isbn进行排序,创建5个相应的对象,用TreeSet的对象来存储这5个对象,输出存储的这5个对象(排序后)。

import java.util.Comparator;
import java.util.Random;
import java.util.TreeSet;

public class MyComparatorForName implements Comparator {
    @Override
    public int compare(Book o1, Book o2) {
        return o1.getIsbn().compareTo(o2.getIsbn());
    }

    public static void main(String[] args) {
        TreeSet treeSet = new TreeSet(new MyComparatorForName());

        Random random = new Random();
        for (int i = 0; i < 5; i++) {
            Book book = new Book(random.nextInt(100) + "", "书本" + i, "lwy");
            treeSet.add(book);
        }
        treeSet.stream().forEach(System.out::println);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000135.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号