Set、Map、List集合的使用

1.Set集合(不包含重复元素)

(1)      Set集合特点:

①     一次只存一个元素,②     不能存储重复的元素,③     存储顺序和取出来的顺序不一定一致

(2)      常用的set集合是HashSet

(3)      常用方法在list中都有,方法比list少, 少的是与索引相关的方法,因为Set集合没有索引

直接贴代码:

//根据登录用户查出所有他角色具有的菜单 

 public Set<Integer> getMenuIds() {
    AuthInfo user = AuthInfoUtils.getAuthInfo();
    Set<Integer> setInfo = new HashSet<Integer>();
    Long loginuserId = user.getUserId();

    List<RoleMenu> usermenu = this.service.getMenuIds(loginuserId);
    String[] arr = new String[usermenu.size()];

    for (int i = 0; i < usermenu.size(); i++) {
      arr[i] = usermenu.get(i).getMenuIds();
    }
    for (int i = 0; i < arr.length; i++) {
      if ("" != arr[i]) {
        String[] arr1 = arr[i].trim().split(",");
        for (int j = 0; j < arr1.length; j++)
          setInfo.add(Integer.valueOf(arr1[j]));
      }
    }
    return setInfo;

  }

}

或者:

public  Set<Object> getMenuIds() {
    AuthInfo user = AuthInfoUtils.getAuthInfo();
    Set<Object> setInfo = new HashSet<Object>();
    Set<Object> setInfo1 = new HashSet<Object>();
    Long loginuserId = user.getUserId();
    List<RoleMenu> usermenu = this.service.getMenuIds(loginuserId);
    String[] arr = new String[usermenu.size()];
    for (int i = 0; i < usermenu.size(); i++) {
      arr[i] = usermenu.get(i).getMenuIds();
    }
    for (int i = 0; i < arr.length; i++) {
      if ("" != arr[i]) {
        String[] arr1 = arr[i].trim().split(",");
        for (int j = 0; j < arr1.length; j++) {        
         setInfo1.add(Integer.valueOf(arr1[j]));
      }
    }
    }
    for(Object i: setInfo1) {
      String setInfoString=String.valueOf(i);
      setInfo.add(menuService.get(Long.valueOf(setInfoString)));
    }
    return setInfo;
  }

2.List集合:  一次只存储一个元素

1.常用的list集合是ArrayList

(1)在创建这个集合的对象时, 需要指定这个集合存储的数据类型! 否则这个集合的数据是不安全的。

(2)与数组的区别:

①数组的长度是固定的, 集合的长度是可变的。

②数组可以存储基本类型和引用数据类型的数据.集合不可以存储基本数据类型, 只能存储引用数据类型

3.如果集合中需要存储基本类型的数据, 集合的类型必须指定为对应的包装类型。

4.list集合中的常用方法

(1)add(E): 往集合中添加一个元素

(2)add(index,E): 把元素添加到指定的位置, 原来的内元素会被挤到后面

(3)get(index): 通过索引获取集合中对应的元素

(4)size(): 获取集合的大小、集合中元素个数

(5)remove(index): 删除指定索引的元素, 返回被删除的元素

(6)remove(Object): 删除集合中的指定对象, 如果有多个相同的对象, 只会删除第一个.

(7)contains(E): 判断集合中是否包含指定的元素

(8)indexOf(E): 获取元素在集合中第一次出现的索引

(9)lastIndexOf(E): 获取元素在集合中最后一次出现的索引

(10)isEmpty(): 判断集合中的元素是否为空

(11)set(index,E): 把指定索引位置的元素覆盖, 返回的是被修改的元素

(12)clear(): 清空集合中的所有元素

(13)toArray(): 把集合转换成Object数组,注意不能转换成其他数组!

3.Map集合: 一次存储两个元素

1.     常用的Map集合是HashMap

2.     Map集合就是可以任意指定索引数据类型的集合, 数组和list集合是固定使用int类型作为索引的容器

3.     Map集合的特点:

(1)      map集合一次要存储两个元素, 第一个是key(键-索引), 第二个内容是value(值)

(2)      map集合的键是不能重复, 如果多次往同一个索引存储元素, 以最后一次存储为准, 后面存储内容会把前面存储的内容覆盖

(3)      map集合中的值是可以重复的

4.    常用方法:

(1)      put(key,value): 把键和对应的值存储到集合中

(2)      get(key): 根据键取对应的值

(3)      isEmpty(): 判断集合是否为空

(4)      clear(): 清空集合中的所有元素

(5)      containsKey(key): 判断集合中是否包含指定的键

(6)      containsValue(value): 判断集合中是否包含指定的值

(7)      remove(Object key): 根据键删除键和对应的值

(8)      size(): 获取集合中的元素个数

(9)      keySet(): 获取到map集合中的所有键, 装到一个Set集合中, 遍历这个集合可以得到每一个键

(10)   entrySet(): 把集合中的key和value封装成Entry对象并存储到一个Set集合中,返回该集合

(11)   values(): 把集合中所有value存储到一个Collection集合中并返回

.....后续再更新

猜你喜欢

转载自blog.csdn.net/RuiKe1400360107/article/details/82802311