实习集训一

来源:互联网 发布:淘宝网购过程 编辑:程序博客网 时间:2024/06/06 02:50
熟悉java.util.Collections的使用
对集合中的10个随机数进行排序后输出到控制台;说明:1、数字可以是int、double或其他数字类型;   2、按由小到大排序;
package intern.focusTech;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Map;import java.util.Random;import java.util.Set;import java.util.TreeSet;public class Prac710 {public static void main(String[] args){ListSort();//ListSort2();//treeSetTest();//hashSetTest();//hashMapTest();}public static void ListSort(){List<Double> list=new ArrayList<Double>();Random rand=new Random();for(int i=0;i<100;i++){list.add(rand.nextDouble()*100);}int beforeNum=0;//使用Number 可以适用于任何Number子类的Listfor(Number num:list){System.out.println((beforeNum>9?beforeNum+++": ":beforeNum+++" : ")+num);}sortList(list);int afterNum=0;for(Number num:list){System.out.println((afterNum>9?afterNum+++": ":afterNum+++" : ")+num);}}private static <T extends Number & Comparable<? super T> > List<T> sortList(List<T> list){Collections.sort(list);return list;}public static void ListSort2(){List<Number> list=new ArrayList<Number>();//List<Number> list=new LinkedList<Number>();Random rand=new Random();//通过Math.random()产生的随机数字来确定添加什么类型的数//小于0.25 添加int型,小于0.5添加float型,小于0.75添加double型,其余添加long型        for(int i=0;i<10;i++){         double con=Math.random();         if(con<0.25){         list.add(rand.nextInt());         }else if(con<0.5){         list.add(rand.nextFloat()*100);         }else if(con<0.75){         list.add(rand.nextDouble()*100);         }else{         list.add(rand.nextLong());         }        }        //将排序之前的数列出        System.out.println("Before Sort:");        int beforeNum=0;for(Number num:list){System.out.println((beforeNum>9?beforeNum+++": ":beforeNum+++" : ")+num);}Collections.sort(list,new NumComparator());//对于混合类型的List无法直接使用Collections自带的sort 必须添加比较类//将排序之后的数列出System.out.println("\nAfter Sort:");int afterNum=0;for(Number num:list){System.out.println((afterNum>9?afterNum+++": ":afterNum+++" : ")+num);}}private static class NumComparator implements Comparator<Number>{@Overridepublic int compare(Number o1, Number o2) {// TODO Auto-generated method stubif(o1.doubleValue()<o2.doubleValue()){return -1;}else if(o1.doubleValue()>o2.doubleValue()){return 1;}elsereturn 0;}}public static void treeSetTest(){Set<String> ts=new TreeSet<String>();ts.add("cab");ts.add("bded");ts.add("deaf");ts.add("ced");ts.add("abd");ts.add("cab");ts.add("");/*for(String str:ts){System.out.println(str);}*/Iterator it = ts.iterator();        while (it.hasNext()) {            System.out.println(it.next());        }}public static void hashSetTest(){Set<String> set=new HashSet<String>();set.add("afd");set.add("cad");set.add("bde");set.add("cad");Iterator it = set.iterator();        while (it.hasNext()) {            System.out.println(it.next());        }        System.out.println(set.remove("afd"));        it = set.iterator();        while (it.hasNext()) {            System.out.println(it.next());        }}public static void hashMapTest(){Map<Integer,String> map=new HashMap<Integer,String>();map.put(1, "df");map.put(1,"er");map.put(3, "dfds");System.out.println(map.get(1));Iterator iter = map.entrySet().iterator();while (iter.hasNext()) {Map.Entry entry = (Map.Entry) iter.next();Object key = entry.getKey();Object val = entry.getValue();System.out.println(val);}}}