当前位置:文档之家› 实验五 集合类与泛型

实验五 集合类与泛型

实验五集合类与泛型1.实验目的(1)掌握ArrayList类与LinkedList类的用法;(2)掌握TreeSet类的用法;(3)掌握Map接口及其实现类的用法(4)掌握泛型的用法。

2.实验内容实验题1 有四个类,主类Store在包.nwsuaf.jp.p4中,Mobile、Mp3Player、Product在包.nwsuaf.jp.p4.data中,Mobile、Mp3Player是Product的子类, Product类实现Comparable接口,重写了Comparable接口中方法compareTo,实现了product对象按照价格排序。

基本要求:(1)在主类Store中实例化多个Mobile类与Mp3Player的实例,分别将这些实例用ArrayList与LinkedList存放,最后用StringBuiler存放并将其输出。

(2)用迭代器(iterator)将实例对象输出(要求用加强型for循环)。

Store类package .nwsuaf.jp.p44;import java.util.ArrayList;import java.util.Arrays;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import javax.swing.JOptionPane;import .nwsuaf.jp.p4.data.Mobile;import .nwsuaf.jp.p4.data.Mp3Player;import .nwsuaf.jp.p4.data.Product;public class Store {public static int count=0;public static void main(String[] args) {Mobile m1=new Mobile("E365 on china Mobile",1780);Mobile m2=new Mobile("E3330 on china Mobile",1450);Mp3Player mp1=new Mp3Player("Meiz0 X3 (256MB)",399);Mp3Player mp2=new Mp3Player("Meiz0 E5 (512MB)",580);Mp3Player mp3=new Mp3Player("Xlive XM Mp3Player(256MB)",930);Product p[]={mp2,mp1,mp3,m1,m2};Arrays.sort(p);StringBuilder text=new StringBuilder();for(Product i:p){text.append(i).append("\n");}System.out.println("用StringBuiler输出:\n"+text);List<Product> list1=new ArrayList<Product>();//用到泛型因为Product是mp3和mobil的总类,ArrayList只能放一种类型List<Product> list2=new LinkedList<Product>();for(int i=0;i<p.length;i++)list1.add(p[i]);for(int i=0;i<p.length;i++)list2.add(p[i]);Iterator<Product> it=list1.iterator();System.out.println(" 用 ArrayList或LinkedList迭代器输出:");while(it.hasNext()){Product p1=it.next();System.out.println(p1);}}}实验题2 项目包含类见实验题1。

基本要求:(1)在主类Store中实例化多个Mobile类与Mp3Player的实例,分别将这些实例用TreeSet存放,最后用StringBuiler存放并将其输出。

(2)用迭代器(iterator)将实例对象输出。

Store类package .nwsuaf.jp.p44;import java.util.ArrayList;import java.util.Arrays;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Set;import java.util.TreeSet;import javax.swing.JOptionPane;import .nwsuaf.jp.p4.data.Mobile;import .nwsuaf.jp.p4.data.Mp3Player;import .nwsuaf.jp.p4.data.Product;public class Store {public static int count=0;public static void main(String[] args) {Mobile m1=new Mobile("E365 on china Mobile",1780);Mobile m2=new Mobile("E3330 on china Mobile",1450);Mp3Player mp1=new Mp3Player("Meiz0 X3 (256MB)",399);Mp3Player mp2=new Mp3Player("Meiz0 E5 (512MB)",580);Mp3Player mp3=new Mp3Player("Xlive XM Mp3Player(256MB)",930);Product p[]={mp2,mp1,mp3,m1,m2};Arrays.sort(p);StringBuilder text=new StringBuilder();for(Product i:p){text.append(i).append("\n");}System.out.println("用StringBuiler输出:\n"+text);Set<Product> set1=new TreeSet<Product>();//用到泛型因为Product是mp3和mobil的总类,ArrayList只能放一种类型for(int i=0;i<p.length;i++)set1.add(p[i]);Iterator<Product> it=set1.iterator();System.out.println(" 用TreeSet迭代器输出:");while(it.hasNext()){Product p1=it.next();System.out.println(p1);}}}实验题3 项目包含类见实验题1。

基本要求:(1)在主类Store中实例化多个Mobile类与Mp3Player的实例,分别将这些实例用HashMap与TreeMap 存放,最后用StringBuiler存放并将其输出。

(2)用迭代器(iterator)将实例对象输出。

package .nwsuaf.jp.p44;import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Map;import java.util.Set;import java.util.TreeSet;import javax.swing.JOptionPane;import .nwsuaf.jp.p4.data.Mobile;import .nwsuaf.jp.p4.data.Mp3Player;import .nwsuaf.jp.p4.data.Product;public class Store {public static int count=0;public static void main(String[] args) {Mobile m1=new Mobile("E365 on china Mobile",1780);Mobile m2=new Mobile("E3330 on china Mobile",1450);Mp3Player mp1=new Mp3Player("Meiz0 X3 (256MB)",399);Mp3Player mp2=new Mp3Player("Meiz0 E5 (512MB)",580);Mp3Player mp3=new Mp3Player("Xlive XM Mp3Player(256MB)",930);Product p[]={mp2,mp1,mp3,m1,m2};Arrays.sort(p);StringBuilder text=new StringBuilder();for(Product i:p){text.append(i).append("\n");}System.out.println("用StringBuiler输出:\n"+text);Map<Float,String> map1=new HashMap<Float,String>();for(int i=0;i<p.length;i++){map1.put(p[i].getPrice(), p[i].getName());}Set<Map.Entry<Float, String>> set1=null;set1=map1.entrySet();Iterator<Map.Entry<Float, String>> it=null;it=set1.iterator();System.out.println("用迭代器输出:");while(it.hasNext()){Map.Entry<Float, String> a=it.next();System.out.println(a.getValue()+" "+a.getKey());}}}因为HashMap与TreeMap的存放与用迭代器方法一样,这里只列出HashMap 的实验题4 有四个类,主类Store在包.nwsuaf.jp.p4中,Mobile、Mp3Player、Product在包.nwsuaf.jp.p4.data中,Mobile、Mp3Player是Product的子类。

相关主题