美文网首页
java中的集合

java中的集合

作者: 小漫画ing | 来源:发表于2019-03-31 18:45 被阅读0次

    概述:

    • 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,java就提供了集合类;
    • 数组虽然也可以存储对象,但是长度是固定的,集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象;
    • 集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象;
    • java中有很多的集合类,他们的数据结构不同,但是,他们肯定有共性的内容(存储,获取,判断等),通过不断地向上提取,我们就能够得到一个集合的继承体系结构图;

    Collection:

    • Collection:是集合的顶层接口,它的子体系有重复的,有唯一的,有有序的。
    • Collection的功能概述:
      1、添加功能:
      boolean add(Object obj):添加一个元素
    package cn.manman.com;
    
    import java.util.ArrayList;
    import java.util.Collection;
    
    public class collection {
        public static void main(String[] args) {
            //创建集合对象
            Collection collection=new ArrayList();
            //添加一个元素
            System.out.println("添加一个元素:"+collection.add("h"));
            System.out.println(collection);
        }
    }
    
    

    boolean addAll(Collection c):添加一个集合的元素;

    package cn.manman.com;
    
    import java.util.ArrayList;
    import java.util.Collection;
    
    public class collection1 {
      public static void main(String[] args) {
          //创建集合1
          Collection collection1=new ArrayList();
          collection1.add("abc1");
          collection1.add("abc2");
          collection1.add("abc3");
          collection1.add("abc4");
          //创建集合2
          Collection collection2=new ArrayList();
          collection2.add("abc5");
          collection2.add("abc6");
          collection2.add("abc7");
          collection2.add("abc8");
          
          //添加一个集合
          collection2.addAll(collection1);
          System.out.println("collection1:"+collection1);
          System.out.println("添加一个集合:"+collection2);
      }
    }
    
    

    2、删除功能:
    void clear():移除所有元素;

    //移除所有元素
            collection.clear();
            System.out.println("移除所有的元素:"+collection);
    

    boolean remove(Object obj):移除一个元素;

    //移除一个元素
    collection.add("hello");
    collection.add("world");
    collection.add("java");
    collection.remove("world");
    System.out.println("移除一个元素:"+collection);
    

    boolean removeAll(Collection c):移除一个集合的元素;

    //移除一个集合
    collection2.removeAll(collection1);
    System.out.println("移除一个集合:"+collection2);
    

    3、判断功能:
    boolean contains(Object obj):判断集合中是否包含指定的集合元素;

    //判断集合中是否包含指定的元素
    System.out.println("判断集合中是否包含指定的元素:"+collection.contains("python"));
    System.out.println("判断集合中是否包含指定的元素:"+collection.contains("java"));
    

    boolean containsAll(Collection c):判断集合中是否包含指定的集合元素;

    //判断集合中是否包含指定的集合元素
    System.out.println("判断集合中是否包含指定的集合元素:"+collection2.containsAll(collection1));
    

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

    //判断集合是否为空
    System.out.println("判断集合是否为空:"+collection.isEmpty());
    

    4、获取功能:
    Iterator<E> iterator()

    package cn.manman.com;
    
    import java.util.ArrayList;
    import java.util.Collection;
    
    public class collection2 {
        public static void main(String[] args) {
            //创建集合对象
            Collection collection=new ArrayList();
            
            //添加元素
            collection.add("hello");
            collection.add("world");
            collection.add("java");
            
            //遍历
            //把集合转为数组,可以实现集合的遍历
            Object[] objects=collection.toArray();
            for (int i = 0; i < objects.length; i++) {
                String s1=(String) objects[i];//转成字符串是为了后面可以获取他的字符串长度
                System.out.println(objects[i]+"----"+s1.length());
                
            }
            
        }
    }
    
    

    5、长度功能:
    int size():元素的个数;

    //元素的个数
    System.out.println("元素的个数:"+collection.size());
    

    6、交集功能:
    boolean retainAll(Collection c):两个集合都有的元素;

    //交集
    System.out.println("交集功能:"+collection1.retainAll(collection2));
    System.out.println(collection1);
    

    最后的输出 结果为空是因为我给的两个集合没有共同的元素;
    7、把集合转换为数组:
    Object[] toArray
    package cn.manman.com;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    /*
     * 集合的专用遍历方式
     */
    public class collection3 {
        public static void main(String[] args) {
            //创建集合对象
            Collection collection=new ArrayList();
                    
            //添加元素
            collection.add("hello");
            collection.add("world");
            collection.add("java");
            
            //Iterator iterator():迭代器,集合的专用遍历方式
            Iterator it =collection.iterator();
            
            while (it.hasNext()) {
                String s1=(String) it.next();
                System.out.println(s1);
                
            }
            
        }
    }
    
    

    Collection存储字符串并遍历练习

    • 存储字符串并遍历
    package cn.manman.com;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    /*
     * 分析:
     *  A:创建集合对象
     *  B:创建字符串对象
     *  C:把字符串对象添加到集合中
     *  D:遍历集合
     */
    public class CollectionTest {
        public static void main(String[] args) {
            //创建集合对象
            Collection c=new ArrayList();
            
            //创建字符串对象
            //把字符串对象添加到集合中
            c.add("林青霞");
            c.add("风清扬");
            c.add("亚瑟");
            c.add("鲁班");
            c.add("伽罗");
            
            //遍历集合
            //通过集合对象获取迭代器对象
            Iterator iterator=c.iterator();
            while (iterator.hasNext()) {
                String s1=(String) iterator.next();
                System.out.println(s1);
                
            }
        }
    }
    
    

    存储自定义对象并遍历Student(name,age)

    package cn.manman.com;
    
    public class Student {
        private String name;
        private int age;
        public Student(){
            super();
        }
        public Student(String name,int age){
            super();
            this.name=name;
            this.age=age;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        
    }
    
    
    package cn.manman.com;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    /*
     * 需求:存储自定义对象并遍历Student(name,age)
     * 分析:
     *      A:创建学生类
     *      B:创建集合对象
     *      C:创建学生对象
     *      D:把学生对象添加到集合对象中
     *      E:遍历集合
     */
    public class CollectionTest2 {
        public static void main(String[] args) {
            //创建集合对象
            Collection c=new ArrayList();
            
            //创建学生对象
            Student s=new Student("伽罗",21);
            Student s1=new Student("吕布",20);
            Student s2=new Student("妲己",22);
            Student s3=new Student("亚瑟",23);
            Student s4=new Student("后裔",25);
            
            //把学生对象添加到集合对象中
            c.add(s);
            c.add(s1);
            c.add(s2);
            c.add(s3);
            c.add(s4);
            c.add(new Student("ALisa",22));
            
            //遍历学生
            Iterator it= c.iterator();
            while(it.hasNext()){
                Student student=(Student) it.next();
                System.out.println(student.getName()+"---"+student.getAge());
            }
        }
    }
    
    

    List:

    package cn.manman.com;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    /*
     * 需求:List集合存储字符串并遍历
     */
    public class ListDemo {
        public static void main(String[] args) {
            //创建集合对象
            List list=new ArrayList();
            
            
            //创建字符串并添加
            list.add("hello");
            list.add("world");
            list.add("java");
            
            //遍历集合
            Iterator it=list.iterator();
            while (it.hasNext()) {
                String s1= (String) it.next();
                System.out.println(s1);
                
            }
                    
        }
    }
    
    
    • List集合的特点是:有序(存储和取出的元素是一致),可重复的;
    package cn.manman.com;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    /*
     * 需求:List集合存储字符串并遍历
     */
    public class ListDemo {
        public static void main(String[] args) {
            //创建集合对象
            List list=new ArrayList();
            
            
            //创建字符串并添加
            list.add("hello");
            list.add("world");
            list.add("java");
            list.add("java");
            
            //遍历集合
            Iterator it=list.iterator();
            while (it.hasNext()) {
                String s1= (String) it.next();
                System.out.println(s1);
                
            }
                    
        }
    }
    
    
    • List集合的特有功能:
      void add(int index,Object element):在指定位置添加元素;
    package cn.manman.com;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class ListDemo1 {
        public static void main(String[] args) {
            //创建集合对象
            List list =new ArrayList();
            
            //添加元素
            list.add("hello");
            list.add("world");
            list.add("java");
            
            //输出list
            System.out.println("list:"+list);
            
            //在指定位置添加元素;
            list.add(1, "xuman");
            System.out.println("添加后的list集合:"+list);
        }
    }
    
    

    Object get(int index):获取指定位置的元素;

    //获取指定位置的元素;
    System.out.println("获取指定位置的元素:"+list.get(1));
    

    ListIterator listIterator():List集合特有的迭代器;

    package cn.manman.com;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.ListIterator;
    
    public class list迭代器 {
        public static void main(String[] args) {
            //创建对象
            List list =new ArrayList();
            
            //添加元素
            list.add("hello");
            list.add("world");
            list.add("java");
            
            //创建List集合特有的迭代器;
            ListIterator li=list.listIterator();
            
            //遍历list集合
            while (li.hasNext()) {
                String s = (String) li.next();
                System.out.println(s);
                
            }
            
        }
    }
    
    

    该迭代器其实继承Iterator,所以可以直接使用hasnext()和next()方法,这个迭代器可以往前拿元素:
    Object previous():往前取元素;

    //遍历list集合
            while (li.hasNext()) {
                String s = (String) li.next();
                System.out.println(s);
                
            }
            System.out.println("----------");
            while (li.hasPrevious()) {
                String s = (String) li.previous();
                System.out.println(s);
                
            }
    

    Object remove(int index):根据索引删除元素;

    //根据索引删除元素;
    list.remove(1);
    System.out.println("按照索引删除后的list集合:"+list);
    

    Object set (int index,Object element)::根据索引返回被修饰的元素;

    //根据索引返回被修饰的元素;
    list.set(1,"android");
    System.out.println("根据索引返回被修饰的元素:"+list);
    
    /*
             * 在list集合中,有他特有的遍历方法,就是通过利用size()和get()相结合的方式
             * size()是获取她的长度
             * get()是取出里面的元素
             */
            //遍历list集合
            for (int i = 0; i < list.size(); i++) {
                String string=(String) list.get(i);
                System.out.println(string);
                
            }
    

    相关文章

      网友评论

          本文标题:java中的集合

          本文链接:https://www.haomeiwen.com/subject/escsvqtx.html