zoukankan      html  css  js  c++  java
  • java集合框架--List、Set、Map


     

    1.List:有序的 collection(也称为序列)。此接口可以对列表中每个元素的插入位置进行精确地控制。可以根据元素的在列表中的位置访问元素,并搜索列表中的元素。列表允许重复的元素。

       ArrayList: 

       特点:有序的、线性的、无固定大小的、有下标的、先进先出

       简单操作应用:

    public static void main(String args[]) {

    Java代码  收藏代码
    1. // 创建一个队列对象  
    2. java.util.ArrayList<String> list = new java.util.ArrayList<String>();  
    3.   
    4. // 装入10个数据  
    5. for (int i = 0; i < 10; i++) {  
    6.     String s = "元素" + i;  
    7.     //加元素  
    8.     list.add(s);  
    9. }  
    10.   
    11. // 遍历1  
    12. for (int i = 0; i < list.size(); i++) {  
    13.     // 根据下标取出一个元素  
    14.     String str = list.get(i);  
    15.     System.out.print(str+" ");  
    16. }  
    17.   
    18. System.out.println();  
    19.   
    20. //遍历2  
    21. //得到队列的迭代器对象  
    22. java.util.Iterator<String> iter = list.iterator();  
    23. //判断是否有数据可以迭代  
    24. while(iter.hasNext()){  
    25.     //取出一个元素  
    26.     String str = iter.next();  
    27.     System.out.print(str+" ");  
    28.       
    29. }  
    30.   
    31. System.out.println();  
    32.   
    33. //遍历3  
    34. for(String str:list){  
    35.     System.out.print(str+" ");  
    36. }  
       

     

    2.Set:是简单的集合,它的对象不按特定方式排序,只是简单的把对象加入集合中。不能有重复对象。

     

       HashSet:

     

       特点:无序的,长度可变的,不可重复的

     

       简单的操作应用:

    public static void main(String args[]) {

    Java代码  收藏代码
    1. // 创建一个容器对象  
    2. java.util.HashSet<String> sets = new java.util.HashSet<String>();  
    3.   
    4. // 装入10个元素  
    5. for (int i = 0; i < 10; i++) {  
    6.     String s = "元素a" + i;  
    7.     sets.add(s);  
    8. }  
    9.   
    10. //检验若输入加入重复的元素,在集合中的是原来的还是新加入的(结果表明是原来的)  
    11. boolean b = sets.add("新来的");  
    12. boolean b1 = sets.add("新来的");  
    13. System.out.println(b + "<>" + b1);  
    14. // 遍历1  
    15. // 得到迭代器对象  
    16. java.util.Iterator<String> iter = sets.iterator();  
    17. while (iter.hasNext()) {  
    18.     String str = iter.next();  
    19.     System.out.print(str + " ");  
    20. }  
    21.   
    22. System.out.println();  
    23.   
    24. //遍历2  
    25. for(String str:sets){  
    26.       
    27.     System.out.print(str+" ");  
    28. }  

     

     

    3.Map:Map中存入的对象是一对一对的,即每个对象和它的一个名字(键:key)关联在一起,一个键(key)只能对应一个值(value),反则不然。

     

       HashMap:

     

       特点:无序的、不可重复的

     

       简单的操作应用:

    public static void main(String args[]) {

    Java代码  收藏代码
    1. // 创建一个映射对象  
    2. java.util.HashMap<Integer, String> maps = new java.util.HashMap<Integer, String>();  
    3.   
    4. // 装入键值对  
    5. for (int i = 0; i < 20; i++) {  
    6.   
    7.     int num = i * 1000;  
    8.     String name = "学生" + i;  
    9.   
    10.     // 装入一个键值对  
    11.     maps.put(num, name);  
    12.   
    13. }  
    14.   
    15. //增加一个键值对,加入K相同的键值对,则会替换已经存在的键值对  
    16. maps.put(30000"新学生");  
    17. maps.put(40000"新学生");  
    18.   
    19. maps.put(40000"又来一个");  
    20.   
    21.   
    22. //遍历  
    23. //得到K的Set集合  
    24. java.util.Set<Integer> set = maps.keySet();  
    25. //遍历K的集合,得到set的迭代器  
    26. java.util.Iterator<Integer> iter = set.iterator();  
    27. while(iter.hasNext()){  
    28.     //取出一个key  
    29.     int num = iter.next();  
    30.     //根据key得到对应的Value  
    31.     String name = maps.get(num);  
    32.       
    33.     System.out.println(num+" "+name);  
    34. }  

     

     

     

    两个应用:

    1.package hpw.collection;

    Java代码  收藏代码
    1. /** 
    2.  * 任意的一个数组,重复排序 
    3.  *  
    4.  * @author  
    5.  *  
    6.  */  
    7. public class Task1 {  
    8.   
    9.     public static void main(String args[]) {  
    10.   
    11.         // 创建一个数组  
    12.         int[] array = new int[] { 133345467457861334568945,  
    13.                 299786467123456 };  
    14.   
    15.         int[] temp = RemoveRepeat(array);  
    16.         // 出去重复后,打印数组  
    17.         for (int i = 0; i < temp.length; i++) {  
    18.             System.out.print(temp[i] + " ");  
    19.         }  
    20.           
    21.         System.out.println();  
    22.           
    23.         int[] newarray = sort(temp);  
    24.         // 排序后,打印数组  
    25.         for (int i = 0; i < newarray.length; i++) {  
    26.             System.out.print(newarray[i] + " ");  
    27.         }  
    28.   
    29.     }  
    30.   
    31.     /** 
    32.      * 去除数组中重复的元素 
    33.      *  
    34.      * @param base 
    35.      *            :要去除的数组 
    36.      * @return:去除重复后的数组 
    37.      */  
    38.     public static int[] RemoveRepeat(int[] base) {  
    39.   
    40.         // 创建一个集合  
    41.         java.util.HashSet<Integer> sets = new java.util.HashSet<Integer>();  
    42.   
    43.         // 遍历数组,将元素装入集合  
    44.         for (int i = 0; i < base.length; i++) {  
    45.   
    46.             int temp = base[i];  
    47.             // 将元素装入集合  
    48.             sets.add(temp);  
    49.         }  
    50.   
    51.   
    52.         //创建一个新的数组  
    53.         int[] newarry=new int[sets.size()];  
    54.           
    55.         // 得到迭代器  
    56.         java.util.Iterator<Integer> ite = sets.iterator();  
    57.           
    58.         // 遍历集合,将元素装入队列  
    59.         for (int i = 0; ite.hasNext(); i++) {  
    60.   
    61.             newarry[i] = ite.next();  
    62.         }  
    63.   
    64.         return newarry;  
    65.     }  
    66.   
    67.     /** 
    68.      * 将数组排序 
    69.      *  
    70.      * @param base 
    71.      *            :原数组 
    72.      * @return:排序后的数组 
    73.      */  
    74.     //冒泡排序  
    75.     public static int[] sort(int[] base){  
    76.           
    77.         for(int i=0;i<base.length;i++){  
    78.               
    79.             for(int j=i+1;j<base.length;j++){  
    80.                   
    81.                 if(base[i]>base[j]){  
    82.                     int temp=base[i];  
    83.                     base[i]=base[j];  
    84.                     base[j]=temp;  
    85.                 }  
    86.             }  
    87.         }  
    88.           
    89.         return base;  
    90.     }  
    91. }  

     

        2.package hpw.collection;

    Java代码  收藏代码
    1. import java.util.HashMap;  
    2.   
    3. /** 
    4.  * 统计重复 
    5.  * @author lenovo 
    6.  * 
    7.  */  
    8. public class Task2 {  
    9.       
    10.     public static void main(String args[]){  
    11.           
    12.         // 创建一个数组  
    13.         int[] array = new int[] { 133345467457861334568945,  
    14.                 299786467123456,45 };  
    15.           
    16.         //创建一个映射  
    17.         java.util.HashMap<Integer, Integer> map=new java.util.HashMap<Integer, Integer>();  
    18.         //统计  
    19.         map=count(array);  
    20.         //打印  
    21.         print(map);  
    22.           
    23.     }  
    24.   
    25.     /** 
    26.      * 统计出现的次数 
    27.      * @param base:原数组 
    28.      * @return:java.util.HashMap<Integer:数组元素, Integer:出现的次数> 
    29.      */  
    30.     public static java.util.HashMap<Integer, Integer> count(int[] base){  
    31.         //创建一个映射  
    32.         java.util.HashMap<Integer, Integer> maps=new java.util.HashMap<Integer, Integer>();  
    33.           
    34.         //遍历数组,出现重复,value+1  
    35.         for(int i=0;i<base.length;i++){  
    36.             //判断是否出现重复  
    37.             if(maps.containsKey(base[i])){  
    38.                   
    39.                 int value=maps.get(base[i])+1;  
    40.                 maps.put(base[i], value);  
    41.             }else{  
    42.                   
    43.                 maps.put(base[i], 1);  
    44.             }  
    45.         }  
    46.           
    47.         return maps;  
    48.     }  
    49.       
    50.     /** 
    51.      * 打印队列 
    52.      * @param map 
    53.      */  
    54.     public static void print(HashMap<Integer, Integer> map){  
    55.         //创建一个集合,得到K的元素  
    56.         java.util.Set<Integer> set=map.keySet();  
    57.           
    58.         //遍历集合,获得迭代器  
    59.         java.util.Iterator<Integer> ite=set.iterator();  
    60.         while(ite.hasNext()){  
    61.             //去除key  
    62.             int key=ite.next();  
    63.             //得到相应的value  
    64.             int value=map.get(key);  
    65.               
    66.             System.out.println(key+" "+value);  
    67.         }  
    68.           
    69.           
    70.     }  
    71. }  

  • 相关阅读:
    android基础开发之scrollview
    java网络---再论URL & URI
    Android Studio 有用的插件
    java网络---查找Internet
    java网络---流
    Qt学习之路(1)------Qt常用类用法说明
    将批量下载的博客导入到手机后,通过豆约翰博客阅读器APP(Android手机)进行浏览,白字黑底,保护眼睛,图文并茂。
    如何收藏互联网上的任意网页到系统某个分类下,之后进行批量导出发布等---博客备份专家的博文收藏功能您不可不知
    很喜欢看某方面的文章,如何将不同站点,不同博主同一类别的文章归类整合到一起,再批量导出成各种格式---豆约翰博客备份专家新增按分类收藏博文功能
    豆约翰博客备份专家博客导出示例(PDF,CHM)
  • 原文地址:https://www.cnblogs.com/baiduligang/p/4247675.html
Copyright © 2011-2022 走看看