• java集合(list, set, map)常用方法


    java集合(list, set, map)常用方法

    1.

    集合:有一堆数据要存:

    [name='小赵' , age=18, sex='女']

    [name='小钱' , age=19, sex='女']

    [name='小孙' , age=20, sex='女']

    [name='小李' , age=21, sex='女']等等,

    这样一条一条的数据就能够用集合存起来,成为集合的一条条记录,

    例如用list来存,存的形式就如下:

    list = {[name='小赵' , age=18, sex='女'], [name='小钱' , age=19, sex='女'], [name='小孙' , age=20, sex='女'], [name='小李' , age=21, sex='女']};

    然后可以根据list.get(i)来分别取值(记录)啦。

    2.

    List特点:元素有放入顺序,元素可重复,因为有序,可以用下标来取得想要的值。

    Set特点:元素无放入顺序,元素不可重复,因为无序,无法用下标来取得想要的值。

    Map特点:元素是成对存在的。每个元素由键与值两部分组成,通过键可以找对所对应的值。Key(键)唯一,重复会把前面的覆盖掉。用键取值,不用下标。

    3.

    list常用方法:
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    import java.util.Iterator;

    public class TestList {
        public static void main(String[] args){
            List<String> testList = new ArrayList<String>();
            testList.add("索引0");//添加,下标从0开始
            testList.add("索引1");
            testList.add("索引2");
            testList.add("索引3");
            testList.add("索引4");
            testList.add("索引0");//索引5
            
            /*******1根据元素索引位置(查看元素索引)********/
    //        System.out.println(testList.indexOf("索引0"));//查看元素索引,输出 0
    //        System.out.println(testList.lastIndexOf("索引0"));//查看元素索引,输出 5
            
            /************2获取元素************/
    //        String str = testList.get(1);//获取元素,索引1
    //        System.out.println(str);
            
            /**********3删除************/
    //        System.out.println(testList.remove(2));//删除,输出索引2
    //        System.out.println(testList.remove("索引2"));//删除,输出true
            
            /*********4遍历***********/
            for(String s : testList){//遍历方法1
                System.out.println(s);
            }
            
    //        for(int i=0;i<testList.size();i++){//遍历方法2
    //            System.out.println(testList.get(i));
    //        }
    //        System.out.println(testList.size());//6,size()值为元素个数6
            
    //      Iterator it = testList.iterator();//遍历方法3
    //      while(it.hasNext()) {//迭代器遍历
    //          Object obj = it.next();
    //          System.out.println(obj);
    //      }
            
            /************5是否包含某个元素*************/
    //        if(testList.contains("索引1")){
    //            System.out.println("包含");//输出包含
    //        }else{
    //            System.out.println("不包含");
    //        }
    //        System.out.println(testList.contains("索引1"));//输出true
            
            /************6替换(根据下标索引)******************/
    //        System.out.println(testList.set(5,"索引5"));//根据索引改值,输出索引0,先输出后变值
    //        System.out.println(testList.get(5));//输出索引5
            
            /*************7添加(根据下标添加,插入)************/
    //        testList.add(5,"索引5");//根据索引加值,输出索引5,原来索引5位置和之后的向后移一位
    //        System.out.println(testList.get(5));//输出索引5
    //        System.out.println(testList.get(6));//输出索引0
            
            /***********8截取(包前不包后)************/
    //        List<String> list1 = new ArrayList<String>();
    //        list1=testList.subList(1, 4);//截取,输出索引1,索引2,索引3。包前不包后(下标)
    //        for(String s : list1){
    //            System.out.println(s);
    //        }
            
            /*********9是否为空**********/
    //        System.out.println(testList.isEmpty());//判断是否为空,输出false
            
            /********10对列表元素进行迭代返回Iterator集合对象(常用于遍历)**************/
    //        Iterator it = testList.iterator();//见遍历
    //        System.out.println(testList.iterator());//这么输出没啥意思,只是看看输出结果,返回Iterator集合对象,输出java.util.ArrayList$Itr@15db9742
            
            /*********11将集合转换为字符串**********/
    //        String str=testList.toString();//转换成字符串不是数组,输出[索引0, 索引1, 索引2, 索引3, 索引4, 索引0]
    //        System.out.println(str);
            
            /*********12将集合转换为数组***********/
    //        System.out.println(testList.toArray()[1]);//转换成数组,输出索引1
    //        Object[] obj=testList.toArray();//转换成数组
    //        System.out.println(obj[1]);//输出索引1
            
            /********13去重复***********/
            //第一种方法通过循环做, 根据remove方法去重复.
    //        for (int i = 0; i <testList.size()-1; i++) {
    //            for (int j = testList.size()-1; j >i; j--) {
    //                if (testList.get(j).equals(testList.get(i))) {
    //                    testList.remove(j);
    //                }
    //            }
    //        }//关于控制台输出的[索引0, 索引1, 索引2, 索引3, 索引4]这种形式不是数组,是集合
    //        System.out.println(testList);//输出[索引0, 索引1, 索引2, 索引3, 索引4]去掉了重复的"索引0"
            
            //第二种方法通过frequency方法去重复
    //        List<String> paramList=new ArrayList<String>();
    //        for (String s:testList) {
    //            if (Collections.frequency(paramList, s)<1) {
    //                paramList.add(s);
    //            }
    //        }
    //        System.out.println(paramList);//输出[索引0, 索引1, 索引2, 索引3, 索引4]去掉了重复的"索引0"

            
        }

    }

    set常用方法:
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Set;

    public class TestSet {
        public static void main(String args[]){
            Set<String> testSet = new HashSet<String>();
            testSet.add("索引0");//添加,下标从0开始
            testSet.add("索引1");
            testSet.add("索引2");
            testSet.add("索引3");
            testSet.add("索引4");
    //        testSet.add("索引0");//false,testSet集合里没它,.size()还是5
    //        System.out.println(testSet.add("索引0"));//false,不能添加重复数据
            /**********1集合大小*************/
    //        System.out.println(testSet.size());//5
            
            /**********2哈希码值,固定的***********/
    //        System.out.println(testSet.hashCode());
            
            /*************3删除*************/
    //        testSet.remove("索引3");
            
            /************4清空*****************/
    //        testSet.clear();
            
            /***********5遍历(无序(不能根据下标索引),不重复)************/
            //for-each遍历整个集合
    //        for(String value : testSet) {//遍历方法1
    //            System.out.println(value);
    //        }
            
             //iterator方法
    //         Iterator<String> value=testSet.iterator();//遍历方法2
    //         while(value.hasNext()) {
    //             String s=value.next();
    //             System.out.println(s);
    //         }
            
            /**********6是否包含***********/
    //        System.out.println(testSet.contains("索引3"));//true
            
            /*******7是否为空*************/
    //        System.out.println(testSet.isEmpty());//false
            
            /**********8集合转换成数组(数组可以下标遍历)********/
    //        Object[] obj=testSet.toArray();
    //        for(int i=0;i<obj.length;i++)
    //            System.out.println(obj[i]);
            
            /**********9上 集合转换成字符串************/
            String str=testSet.toString();//转化的字符串使用逗号隔开的,输出[索引4, 索引3, 索引0, 索引2, 索引1]
            System.out.println(str);
            /**********9下 字符串转化成数组***************/
            String str2[]=str.split(",");
            System.out.println(str2[2]);
            
        }

    }

    map常用方法:
    import java.util.Map.Entry;
    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;

    public class TestMap {
        public static void main(String []args){
            Map<String,String> testMap = new HashMap<String,String>();
    //        Map testMap=new HashMap(); //这么写也可以
            testMap.put("00", "索引0");//添加,
            testMap.put("01", "索引1");
            testMap.put("02", "索引2");
            testMap.put("03", "索引3");
            testMap.put("04", "索引4");
            testMap.put("00", "索引5");//key唯一,重复会把前面的覆盖掉put(key,value)
    //        System.out.println(testMap);//{00=索引5, 01=索引1, 02=索引2, 03=索引3, 04=索引4}
            
            /*********1集合大小**********/
    //        System.out.println(testMap.size());//5,覆盖掉
            
            /**********2获取(根据 key,不根据下标)*************/
    //        System.out.println(testMap.get("00"));//索引5
            
            /************3只获取value值***************/
    //        Collection values = testMap.values();
    //        System.out.println("map实例中所有value为:"+values);//map实例中所有value为:[索引5, 索引1, 索引2, 索引3, 索引4]
            
            /************4只获取key值***************/
    //        Set set=testMap.keySet();
    //        System.out.println("map实例中所有key为:"+set);//map实例中所有key为:[00, 01, 02, 03, 04]
            
            /*********5是否包含value**************/
    //        System.out.println(testMap.containsValue("索引2"));//true
            
            /***********6是否包含key*************/
    //        System.out.println(testMap.containsKey("03"));//true
            
            /*************7根据key获取value*************/
    //        Object obj = testMap.get("02");
    //        System.out.println("values为:"+obj);//values为:索引2
            
            /************8删除****************/
    //        System.out.println(testMap.remove("00","索引0"));//false,没有这个
    //        testMap.remove("00");
            
            /**********9清空***********/
    //        testMap.clear();
            
            /*****************10合并***************/
    //        Map<String,String> testMap2 = new HashMap<String,String>();
    //        testMap2.put("00", "索引A");
    //        testMap2.put("06", "索引B");
    //        testMap2.put("07", "索引C");
    //        testMap.putAll(testMap2);//key相同的,testMap被覆盖
    //        System.out.println(testMap);//{00=索引A, 01=索引1, 02=索引2, 03=索引3, 04=索引4, 06=索引B, 07=索引C}
    //        System.out.println(testMap2);//{00=索引A, 06=索引B, 07=索引C}
            
            /*****************11遍历*****************/
            Set kset = testMap.keySet();//方法1,将Map转成Set集合(keySet()),通过Set的迭代器取出Set集合中的每一个元素
            Iterator it = kset.iterator();
            while (it.hasNext()) {
                String key = (String)it.next();
                String value = testMap.get(key);
                System.out.println("key=" + key + " value=" + value);
            }
            
    //         Collection col = testMap.values();//方法2,只有value,不太好
    //         Iterator it = col.iterator();
    //         while (it.hasNext()) {
    //             String value = (String)it.next();
    //             System.out.println(" value=" + value);
    //         }
            
            
    //        Set set = testMap.entrySet();//方法3,
    //        Iterator it = set.iterator();
    //        while (it.hasNext()) {
    //             // 返回的是封装了key和value对象的Map.Entry对象
    //             Entry en = (Entry)it.next();
    //             // 获取Map.Entry对象中封装的key和value对象
    //             String key = (String)en.getKey();
    //             String value = (String)en.getValue();
    //             System.out.println("key=" + key + " value=" + value);
    //        }

            
        }

    }

  • 相关阅读:
    Docker5之Deploy your app
    Docker4之Stack
    Docker3之Swarm
    Docker之Swarm
    Docker2之Service
    Docker1之Container
    Nuget EPPlus的使用
    Nuget CsvHelper 的使用
    excel
    Chrome上的扩展工具
  • 原文地址:https://www.cnblogs.com/zyhl/p/14410778.html
Copyright © 2020-2023  润新知