java中: list、set、map集合的常用方法总结

1..Map userMap = new HashMap<>();
    userMap.size()
    userMap.put(key,value)
    //得到map实例中所有的value,返回值类型为Collection
    Collection values = map.values();
   //获取map实例中所有的键(key),返回值类型为Set
    Set set = map.keySet();
   map.get();//形参为key的名字
  方法作用:通过键(key)的名字获取和键相匹配的值(方法映射),如果key或者value为空,则返回null;
  Object o = map.get(key);
  map.remove()//形参为key
  方法作用:根据key移除map中的与该key对应的value
  //移除key为1的键值
   map.remove("1");//移除后,map的size值减1
   map.clear();//形参为空,返回值为空
   方法作用:清空Map集合中所有的键值
   结果:map的size值为0

   map.putAll()//形参为map集合
   方法作用:把一个map集合合并到另一个map集合里
HashMap是的key是不能重复的,如果有相同的key,最后一个key对应的value会把前一个相同的value覆盖掉

boolean containsKey(Object key)
检查map集合中有没有包含Key为key的元素,如果有则返回true,否则返回false。

boolean containsValue(Object value)
检出map集合中有没有包含Value为value的元素,如果有则返回true,否则返回false。

2.List list = new ArrayList<>();
    list.size()//集合容量
    list.add(E element)//添加元素
    list.add(int index, E element);在指定位置添加元素,前提是索引index不可大于list.size()
    list.get(index)获取指定位置的元素,下标从0开始(插入元素有顺序)
    list.remove(7);// 根据集合中元素下标位置来删除元素
    list.toArray,可以将list转化为array,jdk中提供:
     toArray有两个重载的方法:
  (1)list.toArray();//对于第一个重载方法,是将list直接转为Object[] 数组;
  (2)list.toArray(T[]  a);//第二种方法是将list转化为与list内容相同的类型
    例:第二种方法示例:String[] array =new String[list.size()];
                    list.toArray(array);
    当把list转为array时,需要去除重复元素,可以把list先转化为set,再把set转化为array

    list.isEmpty()与list != null的区别:
    list.isEmpty();//判断list集合里有没有元素,list != null判断是否存在该list集合
    例: System.out.println(list.isEmpty());//false
        System.out.println(null!=list);//true

    subList(var1,var2)方法,内有两个参数:返回一个子集合:从下标var1开始取元素至下标小于var2的所有元素(即:var1 <= 满足下标 左闭右开),list集合下标是从0开始。
     //从list集合中去除指定下标的元素。
     list.subList(1,3).clear();

    //addAll()方法,向一个集合中添加另一个集合全部元素
    boolean addAll(Collection c);
    boolean addAll(int index, Collection c);//可以指定插入位置
    addAll方法中的集合c不可以传入null值,否则会有异常,该方法没有线程安全的设置,当传入的参数c正在被另一个线程操作时,其结果是不确定的。

3.Set ss=new HashSet();   
   set数组是一个不包含重复元素,(插入元素没有顺序)无序的元素的集合。
   set.size()表示set集合中元素个数
   因为Set没有下标也没有key,所以没有修改的方法
   set数组中不存在get()方法;
   往set中添加元素使用的是add(element)方法,但是在set中没有add(index , element)方法。 
   mySet.remove("a"); //删除数组中的"a"元素
   set_a.removeAll (set_b).   //从set_a中删除集合set_b中所有元素,即批量删除
   mySet.isEmpty();   //判断数组是否为空
   mySet.clear();    //清除数组中的所有内容,set.size()为0

部分代码验证:

public class TestList {

    @Test
    public void testListTranslateToSet () {
        List listTest = new ArrayList<>();
        listTest.add(1);
        listTest.add(2);
        listTest.add(3);
        listTest.add(5);
        listTest.add(6);
        listTest.add(7);
        listTest.add(6);
        listTest.add(3);

        System.out.println("去重前:");
        for (Integer item : listTest) {
            System.out.print("  "+item);
        }
        System.out.println();//1  2  3  5  6  7  6  3

        System.out.println("去重中:");
        Set testSet = new HashSet(listTest);
        for (Integer item : testSet){
            System.out.print("  "+item);
        }
        System.out.println();//1  2  3  5  6  7

        System.out.println("去重后:");
        List list = new ArrayList<>(testSet);
        for (Integer item : list) {
            System.out.print("  "+item);
        }
        System.out.println();//1  2  3  5  6  7


        List testList2 = new ArrayList<>();
        testList2.add(11);
        testList2.add(12);
        testList2.add(13);
        list.addAll(testList2);
        System.out.println("添加:");
        for (Integer item : list) {
            System.out.print("  "+item);
        }
        System.out.println();//1  2  3  5  6  7  11  12  13

        Map mapTest = new HashMap<>();
        mapTest.put(1, "测试1");
        mapTest.put(2, "测试2");
        mapTest.put(3, "测试3");
        mapTest.put(4, "测试4");
        mapTest.put(5, "测试5");
        Set keySet = mapTest.keySet();
        Collection valueCollection = mapTest.values();
        System.out.println("map中单独获取value的List");
        for (String item : valueCollection) {
            System.out.println(item);
        }
        System.out.println();//测试1 测试2 测试3 测试4 测试5

        System.out.println("map中利用keySet遍历value");
        for (Integer item : keySet) {
            System.out.println(mapTest.get(item));
        }
        System.out.println();//测试1 测试2 测试3 测试4 测试5

        Map mapTest2 = new HashMap<>();
        mapTest2.put(4, "测试16");
        mapTest2.put(5, "测试17");
        mapTest2.put(6, "测试18");
        mapTest2.put(7, "测试19");
        mapTest2.put(8, "测试20");
        mapTest2.putAll(mapTest);
        for (Map.Entry item : mapTest2.entrySet()) {
            System.out.print("key:" + item.getKey()  + "  ");
            System.out.print("value:" + item.getValue());
            System.out.print(";");
        }
        System.out.println();
        //key:1  value:测试1;key:2  value:测试2;key:3  value:测试3;key:4  value:测试4;key:5  value:测试5;key:6  value:测试18;key:7  value:测试19;key:8  value:测试20;
    }
}

 

你可能感兴趣的:(java)