集合----collection(list----(ArrayList && linkedLIst))

1.集合体系结构:

  •  集合类的特点:提供一种空间可变的存储模型,存储的数据容量可以随时发生改变。
  • 集合类的体系关系图:集合----collection(list----(ArrayList && linkedLIst))_第1张图片

 Collection集合概述和基本使用:

  • Collection集合概述:
    • 是单列集合的顶层接口,他表示一组对象,这些对象也称为Collection的元素
    • JDK不提供此接口的任何实现,它提供更具体的子接口(如Set和List)实现
  • Collection 集合的基本使用:
public class Collection{
    public static void main(String[] args){
        //创建Collection 集合对象
        Collection c = new ArrayList();  


  
        //添加元素:boolean add(E e)
        c.add("hello");
        c.add("world");
        c.add("java");

        //输出集合对象
        System.out.println(c);
    }    
}
  •  Collection 集合的常用方法:
    • boolean add(E e)                //添加元素
    • boolean remove(Object o)     //从集合中移除指定的元素
    • void clear()                     //清空集合中的元素
    • boolean  contains( Object o)      //判断集合中是否存在指定的元素
    • boolean   isEmpty()                 //判断集合是否为空
    • int  Size()                        //集合的长度,也就是集合中元素的个数
  • Collection集合的遍历:

    •  迭代器的介绍:
      • 迭代器,集合的专用遍历方式
      • Iterator iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到。

      • 迭代器是通过集合的iterator()方法得到的,所以我们说它是依赖于集合而存在的。

    • Collection 集合的遍历:
      • 第一种遍历方式:for 遍历集合
        public class Test1 {
        
            public static void main(String[] args) {
        
                List list = new ArrayList();
        
                list.add("zs");
                list.add("lis");
                list.add("王五");
                list.add("zs");
                list.add("王五");
                list.add("zs");
        
        
                System.out.println("list = " + list);
        
                for (int i = 0; i < list.size(); i++) {
                    System.out.println("第 " + (i + 1) + "个数据 = " + list.get(i));
                }
        
        
            }
        }
      • 第二种遍历方式:iterator 集合
        public class Test2 {
        
            public static void main(String[] args) {
        
                List list = new ArrayList();
        
                list.add("zs");
                list.add("lis");
                list.add("王五");
                list.add("zs");
                list.add("武大郎");
                list.add("zs");
        
        
                System.out.println("原始 数据 list = " + list);
        
                Iterator iterator = list.iterator();
        
                while (iterator.hasNext()){
                    String  str = (String) iterator.next();
        
                    if (str.equals("武大郎")){
        
                        iterator.remove();
                    }
        
                    System.out.println("str = " + str);
                }
        
                System.out.println("遍历 之后 list = " + list);
        
            }
        }
        
      • 第三种遍历方式:ListIterator 集合
        public class Test3 {
        
            public static void main(String[] args) {
        
                List list = new ArrayList();
        
                list.add("zs");
                list.add("lis");
                list.add("王五");
                list.add("zs");
                list.add("武大郎");
                list.add("zs");
        
        
                System.out.println("原始 数据 list = " + list);
        
        //   第三种 遍历      Listitoretor  集合  ,
        
        //       使用 Listitoretor   进行 逆序遍历
        //       使用 Listitoretor   对  list 集合中的数据        删除
        //       使用 Listitoretor   对  list 集合中的数据        添加
        //       使用  Listitoretor  对  list 集合中的数据         修改
                ListIterator listIterator = list.listIterator();
        
                while (listIterator.hasNext()) {
        //   指针向下移动 。 可以 返回 当前这个位置的数据
                    String str = (String) listIterator.next();
                    System.out.println("str = " + str);
        
                    if (str.equals("武大郎")) {
        
                        listIterator.remove();
                    }
        
        
                }
        
        
        //     使用 hasPrevious 逆向 遍历  必须 让指针 先进行 向下 移动。
             /*   while (listIterator.hasPrevious()) {
        
                    String str = (String) listIterator.previous();
        
                    System.out.println("str = " + str);
        
                }*/
        
                System.out.println("遍历 之后 list = " + list);
        
            }
        }
        
      • 第四种遍历方式:增强for循环
        public class Test4 {
        
            public static void main(String[] args) {
        
                List list = new ArrayList();
        
                list.add("zs");
                list.add("lis");
                list.add("王五");
                list.add("zs");
                list.add("武大郎");
                list.add("zs");
        
        
                System.out.println("原始 数据 list = " + list);
        
        //   第四种 遍历      增强 for 循环
        
                for (Object a : list) {
                    String str = (String) a;
                    System.out.println("(String)a = " + str);
                }
        
        
            }
        
        }
        

 List 集合概述及特点:

  • List 集合概述:
    • 有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索类表中的元素
    • 与Set 集合不同,列表通常允许重复的元素
  • List 集合特点:
    • 有索引
    • 可以存储重复元素
    • 元素存储有序
  • List 集合的特有方法:
    • void add(int index,E element)                //在此集合中的指定位置插入指定的元素
    • E remove(int index)                          //删除指定索引处的元素,返回被删除局的元素
    • E set(int index,E element)               //修改指定索引处的元素,返回被修改的元素
    • E get(int index)                               //返回指定索引处的元素 
  • List集合的实现类:
    • ArrayList集合:底层是数组结构实现,查询快,增删慢,数组结构的特点;
    • LinkedList集合:底层是链表结构实现,查询慢,增删快,队列结构的特点;
      • LinkedList集合的特有功能:
        • public void addFirst(E e)     //在该列表开头插入指定元素
        • public void addLast(E e)     //将指定的元素追加到此列的末尾
        • public E getFirst()               //返回此列表的第一个元素
        • public E getLast()            //返回此列表的最后一个元素
        • public E removeFirst()     //从此列中删除并返回第一个元素
        • public E removeLast()      // 从此列表中删除并返回最后一个元素

 Set集合的概述及特点:

  • Set 集合的特点:
    • 不包含重复元素的集合
    • 没有带索引的方法,態使用普通的for循环遍历

列表迭代器:

  • ListIterator列表迭代器介绍:
    • 通过List集合的ListIerator()方法得到,所以说它是List集合特有的迭代器
    • 用于允许程序员沿任意方向遍历的列表迭代器,在迭代器期间修改列表,并获取类表中迭代器的当前位置 
  • ListIterator中的常用方法 :
    • E next()         //返回迭代中的下一个元素
    • boolean hasNext()    //如果迭代具有更多元素,则返回true
    • E previous()    // 返回列表中的上一个元素
    • boolean hasPrevious()    //如果此列表迭代器在相反方向遍历列表时具有更多元素,则返回true。
    • void add(E e)   //将指定的的元素的插入列表

你可能感兴趣的:(javase,java,集合,linked,list,arraylist,set)