集合框架

集合框架

  • Collection父接口

  1. List(有序有下标可重复):

              ArrayList(重点):数组结构实现,必须开辟连续空间,查询快、增删慢;默认容量是10;add、remove、contains、size  

              LinkedList :链表结构实现,无需开辟连续空间,增删快、查询慢;getFirst()、getLast()、removeFirst()、addFirst()

package com.oop.demo11;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class Demo01 {
    public static void main(String[] args) {
        //创建接口
        Collection collection = new ArrayList();
        //(1)添加元素
        collection.add("苹果");
        collection.add("西瓜");
        collection.add("榴莲");
        System.out.println("元素个数"+collection.size());
        System.out.println(collection);
        //(2)删除元素
        collection.remove("榴莲");
        System.out.println("删除之后元素个数"+collection.size());
        System.out.println(collection);
        System.out.println("==========================");
        //(3)遍历元素(重点)
        //3.1使用增强for
        for (Object object:collection) {
            System.out.println(object);
        }
        System.out.println("=====================");
        //3.2使用迭代器(专门用来遍历集合的一种方式)
        //hasNext();有没有下一个元素
        //next();获取下一个元素
        //remove();删除当前元素
        Iterator it=collection.iterator();
        while (it.hasNext()){
            String s=(String) it.next();//强制转换
            System.out.println(s);
            //it.remove();
        }
        System.out.println("元素个数"+collection.size());
        //(4)判断
        System.out.println(collection.contains("西瓜"));
        System.out.println(collection.isEmpty());
    }
}

 

package com.oop.demo11;

public class Student {
    private String name;
    private int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", 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 com.oop.demo11;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

//Collection的使用:用来保存学生信息
public class Demo02  {
    public static void main(String[] args) {

        //新建Collection对象
        Collection collection = new ArrayList();
        Student s1 = new Student("张三", 20);
        Student s2 = new Student("李四", 18);
        Student s3 = new Student("王五", 22);
        //1.添加数据
        collection.add(s1);
        collection.add(s2);
        collection.add(s3);
        System.out.println("元素个数" + collection.size());
        System.out.println(collection);
        System.out.println("=========================");
        //2.删除
        collection.remove(s1);
        System.out.println("删除之后:"+collection.size());
        System.out.println(collection);
        System.out.println("=========================");
        //3.遍历
        //3.1增强for
        for (Object object:collection) {
            Student s=(Student) object;
            System.out.println(s.toString());
        }
        System.out.println("=========================");
        //3.2迭代器
        Iterator it=collection.iterator();
        while (it.hasNext()){
            Student s=(Student) it.next();
            System.out.println(s.toString());
        }
        System.out.println("=========================");
        //4判断
        System.out.println(collection.contains(s1));
        System.out.println(collection.isEmpty());
    }
}

 

package com.oop.demo11;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

//List接口的使用
public class Demo03 {
    public static void main(String[] args) {
        //先创建集合对象
        List list=new ArrayList();
        //1添加元素
        list.add("苹果");
        list.add("小米");
        list.add(0,"华为");
        System.out.println("元素个数"+list.size());
        System.out.println(list.toString());
        System.out.println("====================");
        //2.删除元素
        list.remove(0);
        System.out.println("删除后元素"+list.size());
        System.out.println(list.toString());
        System.out.println("====================");
        //3.遍历
        //3.1使用for遍历(因为它有下标)
        for (int i=0;i<list.size();i++){
            System.out.println(list.get(i));

        }
        System.out.println("====================");
        //3.2使用增强for
        for (Object object:list) {
            System.out.println(object);
        }
        System.out.println("====================");
        //3.3使用迭代器
        Iterator it=list.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
        //3.4使用列表迭代器,可以向前或向后遍历,添加、删除、修改元素
        ListIterator lit=list.listIterator();
        System.out.println("======从前往后=========");
        while(lit.hasNext()){
            System.out.println(lit.nextIndex()+":"+lit.next());
        }
        System.out.println("======从后往前=========");
        while(lit.hasPrevious()){
            System.out.println(lit.previousIndex()+":"+lit.previous());
        }
        //4.判断
        System.out.println("======判断=========");
        System.out.println(list.contains("苹果"));
        System.out.println(list.isEmpty());
        //5.获取位置
        System.out.println(list.indexOf("小米"));
        
    }
}

 


 

 

package com.oop.demo11;

import java.util.ArrayList;
import java.util.List;

public class Demo04 {
    public static void main(String[] args) {
        //创建集合
        List list=new ArrayList();
        //添加数字数据(自动装箱)
        list.add(20);
        list.add(30);
        list.add(40);
        list.add(50);
        list.add(60);
        System.out.println(list.size());
        System.out.println(list.toString());
        //删除操作
        list.remove(0);//等价于list.remove(new Integer(20)),等价于list.remove((Object)20)
        System.out.println("删除之后个数"+list.size());
        System.out.println(list.toString());
        //3.补充方法subList:返回子集合
        List subList=list.subList(1,3);//包含1,不包含3,即含头不含尾
        System.out.println(subList);//注意之前删除了20

    }

}

 

package com.oop.demo11;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;

public class Demo05 {
    public static void main(String[] args) {
        //创建集合
        ArrayList arrayList = new ArrayList<>();
        //1.添加元素
        Student s1 = new Student("刘德华",20);
        Student s2 = new Student("郭富城",22);
        Student s3 = new Student("梁朝伟",18);
        arrayList.add(s1);
        arrayList.add(s2);
        arrayList.add(s3);
        System.out.println("元素个数:"+arrayList.size());
        System.out.println(arrayList.toString());
        System.out.println("===================");
        //2.删除元素
        arrayList.remove(new Student("刘德华",20));//equals(this==obj)
        System.out.println("删除之后元素个数:"+arrayList.size());
        System.out.println(arrayList.toString());
        System.out.println("=======================");
        //3.遍历元素(重点)
        //3.1使用迭代器
        Iterator it = arrayList.iterator();
        while(it.hasNext()){
            Student s=(Student)it.next();
            System.out.println(s.toString());
        }
        System.out.println("====================");
        //3.2使用列表迭代器
        ListIterator lit=arrayList.listIterator();
        while (lit.hasNext()){
            Student s=(Student)lit.next();
            System.out.println(s.toString());
        }
        System.out.println("===================");
        //4.判断
        System.out.println(arrayList.contains(new Student("梁朝伟",18)));
        System.out.println(arrayList.isEmpty());
        //5.查找
        System.out.println(arrayList.indexOf(new Student("梁朝伟",18)));
    }
}



package com.oop.demo11;

import java.util.Objects;

public class Student {
    private String name;
    private int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", 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;
        }
    @Override
    public boolean equals(Object obj) {
        //1.判断是不是同一个对象
        if (this == obj)
            return true;
        //2.判断是否为空
        if (obj == null)
            return false;
        //3.判断是否是Student类型
        if (obj instanceof Student) {
            Student s = (Student) obj;
            //4.比较属性
            if (this.name.equals(s.getName()) && this.age == s.getAge()) {
                return true;
            }
        }
        //5.不满足条件
        return false;

    }
}

 

package com.oop.demo11;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.ListIterator;

/**
 * LinkedList的使用
 * 存储结构:双向链表
 * */
public class Demo06 {
    public static void main(String[] args) {
        //创建机会
        LinkedList linkedList = new LinkedList<>();
        //1.添加元素
        Student s1 = new Student("刘德华",20);
        Student s2 = new Student("郭富城",22);
        Student s3 = new Student("梁朝伟",18);
        linkedList.add(s1);
        linkedList.add(s2);
        linkedList.add(s3);
        System.out.println("元数个数:"+linkedList.size());
        System.out.println(linkedList.toString());
        System.out.println("===============");
        //2.删除
        linkedList.remove(s1);
        System.out.println("删除之后:"+linkedList.size());
        System.out.println(linkedList.toString());
        //3.遍历
        //3.1for遍历
        System.out.println("========for遍历======");
        for (int i=0;i<linkedList.size();i++){
            System.out.println(linkedList.get(i));
        }
        //3.2增强for
        System.out.println("======增强for======");
        for (Object object:linkedList) {
            Student s=(Student) object;
            System.out.println(s.toString());
        }
        System.out.println("======迭代器======");
        //3.3使用迭代器
        Iterator it=linkedList.iterator();
        while (it.hasNext()){
            Student s=(Student)it.next();
            System.out.println(s.toString());
        }
        System.out.println("======列表迭代器======");
        ListIterator lit = linkedList.listIterator();
        while (lit.hasNext()){
            Student s=(Student)lit.next();
            System.out.println(s.toString());
        }
        //4.判断
        System.out.println(linkedList.contains(s2));
        System.out.println(linkedList.isEmpty());
        //5.获取
        System.out.println(linkedList.indexOf(s2));

    }
}

 

 

 

 

posted @ 2022-04-23 17:04  胖虎9  阅读(29)  评论(0)    收藏  举报