集合框架

时间:2019-11-10
本文章向大家介绍集合框架,主要包括集合框架使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

集合框架继承体系:

vector

// 演示Vector类
@SuppressWarnings("all") // 抑制编译器发出的警告
public class VectorDemo {
    public static void main(String[] args) {
        // 创建Vector对象
        // 如果事先知道需要存储多少个元素,建议设置初始量
        Vector v1 = new Vector(10);
        // boolean add(E e) 将指定的元素追加到此Vector的末尾。 等价于void addElement(E obj)
        // void add(int index, E element) 在此Vector中的指定位置插入指定的元素。
        v1.add("A");
        v1.addElement("B");
        System.out.println(v1);
        // 把C添加到索引为0的位置
        v1.add(0,"C");
        System.out.println(v1);
        // boolean addAll(Collection<? extends E> c)  把集合中所有的元素添加到当前集合中
        Vector v2 = new Vector();
        v2.add(1);
        v2.add(2);
        v2.add(3);
        // 把v2集合作为一个整体存放到v1集合中
        // v1.add(v2);
        // 把v2中的每一个元素存放到v1集合中
        v1.addAll(v2);
        System.out.println(v1);
    }
}
import java.util.Vector;

public class VectorDemo2 {
    public static void main(String[] args) {
        // 在集合中,存储的都是对象的引用,而不是对象的数据.
        StringBuilder sb = new StringBuilder("Will");
        Vector v = new Vector();
        v.add(sb);
        System.out.println(v);
        sb.append("小明");
        System.out.println(v);
    }
}

stack

import java.util.Stack;

// 演示栈对象
public class StackDemo {
    public static void main(String[] args) {
        Stack stack = new Stack();
        // 把元素圧入栈顶
        stack.push("A");
        stack.push("B");
        stack.push("C");
        stack.push("D");
        System.out.println(stack);
        // 获取栈顶的元素,不移除
        Object ele = stack.peek();
        System.out.println(ele);
        // 移除栈顶的元素
        stack.pop();
        stack.pop();
        System.out.println(stack);
    }
}

arraylist

import java.util.ArrayList;
import java.util.Arrays;

public class ArrayListDemo {
    public static void main(String[] args) {
        ArrayList list1 = new ArrayList();
        list1.add(1);
        list1.add(2);
        list1.add(1);
        list1.add("A");
        list1.add("B");
        list1.add("C");
        System.out.println(list1);
        // 获取索引为5的元素
        Object ele = list1.get(5);
        System.out.println(ele);
        // 元素1第一次出现的位置
        System.out.println(list1.indexOf(1));
        // 元素1最后一次出现的位置
        System.out.println(list1.lastIndexOf(1));
        // 移除B
        list1.remove(4);
        System.out.println(list1);
        // 替换索引位置为3的元素替换为will
        list1.set(3, "will");
        System.out.println(list1);
        // ArrayList转换为数组的方法:Object[] toArray()
        Object[] array = list1.toArray(); // 返回的是一个副本
        System.out.println(Arrays.toString(array));
    }
}

linkedlist

import java.util.LinkedList;

public class LinkedListDemo {
    public static void main(String[] args) {
        // 创建链表对象
        LinkedList list = new LinkedList();
        list.add("A");
        list.add("B");
        list.add("C");
        list.add("D");
        list.add("E");
        // 把will,存放到第一个位置
        list.addFirst("will");
        // 把Lucy,存放到最后一个位置
        list.addLast("Lucy");
        System.out.println(list);
    }
}

iterator

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

// 集合元素的迭代
public class IteratorDemo {
    public static void main(String[] args) {
        // 把实现类对象赋给接口类型
        List list = new ArrayList();
        list.add("A");
        list.add("B");
        list.add("C");
        list.add("D");
        list.add("E");
        // 把list集合中的每一个元素给取出来
        // =====================================
        // 使用for循环
        for (int i = 0; i <list.size() ; i++) {
            Object ele = list.get(i);
            System.out.println(ele);
        }
        // =====================================
        System.out.println("---------------------");
        // 获取迭代器对象
        Iterator it = list.iterator();
        while (it.hasNext()) {
            System.out.println(it.next()); // 获取下一个元素
        }
        // ==========================
        for (Object ele: list) {
            System.out.println(ele);
        }
    }
}

set

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class SetDemo {
    public static void main(String[] args) {
        Set set = new HashSet();
        set.add("A");
        set.add("B");
        set.add("C");
        set.add("D");
        set.add("A");
        System.out.println(set);
        // -------------------------
        // Set转换为List
        List list = new ArrayList(set);
        System.out.println(list);
        list.add("Y");
        list.add("B");
        System.out.println(list);
        // List转换为Set
        Set set1 = new HashSet(list);
        System.out.println(set1);
    }
}

HashSet

import java.util.HashSet;
import java.util.Set;

public class HashSetDemo1 {
    public static void main(String[] args) {
        Set set = new HashSet();
        set.add(1);
        set.add("C");
        set.add("17");
        set.add(17);
        set.add("hello");
        System.out.println(set);
    }
}
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;

// 学生类
class Student extends Object{
    private String name;
    private Integer age;

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

    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Student)) return false;
        Student student = (Student) o;
        return name.equals(student.name) &&
                age.equals(student.age);
    }

    public int hashCode() {
        return Objects.hash(name, age);
    }

    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

public class HashSetDemo2 {
    public static void main(String[] args) {
        Student s1 = new Student("赵一",15);
        Student s2 = new Student("钱三",17);
        Student s3 = new Student("孙三",18);
        Set set = new HashSet();
        set.add(s1);
        set.add(s2);
        set.add(s3);
        System.out.println(set);
    }
}

原文地址:https://www.cnblogs.com/zengqinghong/p/11831302.html