• 集合框架


    1.集合中各接口之间的关系:

    Collection(接口)→List(接口)→ArrayList(类)

                         →Queue(接口)→Deque(接口)→LinkedList(类)

                         →Set(接口) →HashSet(类)

                         →SortedSet(接口)→TreeSet(类)

    Map(接口)→HashMap(接口)

                     →SortedMap(接口)→TreeMap(类)

    比较:  ArrayList 和LinkedList:

                ArrayList为线性表,它是以动态数组的方式保存数据,数据的下标为自然数递增的,便于随机的访问和读取;

                LinkedList为链性表,它是以链表的方式保存数据,便于数据的插入和删除。

               如果在要求上不是太苛刻,可以忽略他们之间的区别。

      补充:Vector和ArrayList都是以数组的形式保存数据,但是Vector中的方法加以sybchronized修饰,是线性安全的,但是性能是比ArrayList要差一些。

    2.ArrayList中常用的方式实例:

     1 public class List1 {
     2 
     3     public static void main(String[] args) {
     4         List<String> list = new ArrayList<String>();
     5         list.add("a");
     6         list.add("b");
     7         list.add("c");
     8         list.add("d");
     9         list.add("e");
    10         list.add("f");
    11         list.add("g");
    12         System.out.println("原:" + list); // 原:[a, b, c, d, e, f, g]
    13 
    14         // 获取子list,该子list和原list占有相同的存储空间
    15         // list.subList(fromIndex, toIndex) 前闭后开
    16         List<String> list1 = list.subList(1, 3);
    17         System.out.println(list1);   //[b, c]
    18         
    19         list1.set(0, "change");
    20         System.out.println(list1);  //[change, c]
    21         System.out.println(list);//[a, change, c, d, e, f, g] 由于list1 和list占有相同的存储空间,因此原list也改变
    22         
    23         //删除集合中的一段数据
    24         list.subList(1, 6).clear();  //删除原List中下标为1-5的元素
    25         System.out.println(list);  // [a, g]
    26         
    27     }
    28 }
  • 相关阅读:
    Android ListView 列表视图
    android handler msg的使用 实现进度条
    Intent 传递数据
    微服务-springcloud
    微服务-dubbo学习
    日志收集系统
    微服务追踪
    链表有环判断,快慢指针两种方法/合并链表/删除重复元素/二分递归和while
    算法练习,链表二分最大n个
    池以及barrier简单
  • 原文地址:https://www.cnblogs.com/iwwenbo/p/3350526.html
Copyright © 2020-2023  润新知