java 集合类应用

来源:互联网 发布:网络实用技术基础答案 编辑:程序博客网 时间:2024/04/27 21:58

1.输出数组中出现次数大于length/2的元素。

package basic.collection;import java.util.HashMap;import java.util.Map;/** * author tanbin * 将数组中出现次数大于 length/2 的数打印出来 * Created by Administrator on 2016/12/11. */public class HashMap1 {    public static void main(String[] args){        int[] array = {2,1,2,3,5,6,9,8,7,6,6,4,3,6};        Map<Integer,Integer> hashMap = new HashMap<Integer,Integer>();        for(int i=0;i<array.length;i++){            if(hashMap.containsKey(array[i])){                int temp = hashMap.get(array[i]);                hashMap.put(array[i],temp+1);            }else{                hashMap.put(array[i],1);               }        }        for(int key : hashMap.keySet()){            System.out.println(key+":"+hashMap.get(key));        }    }}

2.给定一个数组,按元素出现的次数排序。我们用hasmMap来做,Map接口是不可以排序的,但是它的keySet可以。我们使用Collections的sort()方法排序。

package basic.collection;import java.util.*;/** * Created by Administrator on 2016/12/12. */public class HashMap2 {    public static void main(String[] args){        int[] data = {3,6,4,5,4,1,3,4,8,6,2,8,5};        Map<Integer,Integer> map = new HashMap<Integer,Integer>();        int tmp=0;        for(int i=0;i<data.length;i++){            if(map.containsKey(data[i])){                tmp = map.get(data[i]);                map.put(data[i],tmp+1);            }else{                map.put(data[i],1);            }        }        List<HashMap.Entry<Integer,Integer>> list =  new ArrayList<HashMap.Entry<Integer,Integer>>(map.entrySet());        Collections.sort(list, new Comparator<HashMap.Entry<Integer,Integer>>(){            @Override            public int compare(HashMap.Entry<Integer,Integer> o1, HashMap.Entry<Integer,Integer> o2) {                return (o2.getValue()-o1.getValue());            }        });        for(HashMap.Entry<Integer,Integer> entry : list){            System.out.println("key:"+entry.getKey()+"-Value:"+entry.getValue());        }    }}
  • ArrayList 就是一个可扩展的数组,所以删改比较慢。提供了ensureCapacity(int N)的方法,如果事先知道大小的话指定大小,就可以减少自动的扩容,自动每次增加1.5倍。
  • LinkedList 是用双向列表存的

    comprarable和comparator 接口,都能用在Arrays.sort()和Collection.sort() 方法中,用来自定义比较的标准。

先整理到这

0 0