集合框架继承体系:
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); } }