zoukankan      html  css  js  c++  java
  • 集合、Map

    collection集合

    Collection派生出了两个子接口,一个是List另一个则是Set。

    List:称为可重复集,顾名思义,该集合中是允许存放重复元素的,那么何为重复元素?重复元素指的并非是同一个元素,而是指equals方法比较为true的元素。

    Set:称为不可重复集,所以,该集合中是不能将相同的元素存入集合两次,同List,这里相同指的也是两个元素的equals比较结果为true。

    list:接口有两个实现类:ArrayList更适合于随机访问而LinkedList更适合于插入和删除

    • E get(int index):获取集合中指定下标对应的元素,下标从0开始。
    • E set(int index, E elment):将给定的元素存入给定位置,并将原位置的元素返回
      1. void add(int index,E element):

      将给定的元素插入到指定位置,原位置及后续元素都顺序向后移动。

       
      1. E remove(int index):

      删除给定位置的元素,并将被删除的元素返回。

    subList获取的List与原List占有相同的存储空间,对子List的操作会影响的原List。

    1. List<Integer> list = new ArrayList<Integer>();
    2. for (int i = 0; i < 10; i++) {
    3.     list.add(i);
    4. }
    5. System.out.println(list); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    6. List<Integer> subList = list.subList(3, 8);
    7. System.out.println(subList); // [3, 4, 5, 6, 7]
    8. // subList获得的List和源List占有相同的数据空间
    9. for (int i = 0; i < subList.size(); i++) {
    10.     subList.set(i, subList.get(i) * 10);
    11. }
    12. System.out.println(subList); // [30, 40, 50, 60, 70]
    13. System.out.println(list); // [0, 1, 2, 30, 40, 50, 60, 70, 8, 9]
    14. // 可以用于删除连续元素list.subList(3, 8).clear();
    15. System.out.println(list);

     List转换为数组    

    1. List<String> list = new ArrayList<String>();
    2. list.add("a");
    3. list.add("b");
    4. list.add("c");
    5. //通常我们传入的数组不需要给定长度
    6. String[] strArr = list.toArray(new String[] {});        System.out.println(Arrays.toString(strArr)); // [a, b, c]

    数组转换为List

    1. String[] strArr = { "a", "b", "c" };
    2. List<String> list = Arrays.asList(strArr);
    3. System.out.println(list); // [a, b, c]
    4. // list.add("d"); // 会抛出UnsupportedOperationException
    5. //     java.util.Arrays$ArrayList
    6. System.out.println(list.getClass().getName());        
    7. List<String> list1 = new ArrayList<String>();
    8. list1.addAll(Arrays.asList(strArr));
  • 相关阅读:
    多屏共享
    md5-linux_shell
    2017年会所得
    linux无线网络配置_转
    (转)台式机华硕主板双显卡切换,怎么舒服怎么来
    Apache FtpServer 实现文件的上传和下载
    (转载)Windows 上搭建Apache FtpServer
    Eclipse常用设置
    博客园文章样式修改
    黑马公社学习
  • 原文地址:https://www.cnblogs.com/jcfxl/p/5735091.html
Copyright © 2011-2022 走看看