1. Collection
Collection接口: 用来存储单列数据 {"张三","李四","王五"}
List接口: 存储的元素是有序的
ArrayList
LinkedList
Vector
Set接口: 存储的元素无序,且不允许重复
HashSet
TreeSet
Map接口: 用来存储成对的数据 {"卧龙":"诸葛亮", "及时雨":"宋江", "黑旋风":"李逵"}
HashMap:
TreeMap:
LinkedHashMap:
HashTable:
Properties:
Collection是一个接口,有两个子接口 List / Set size()
/ isEmpty() / contains(Object o) / iterator() / toArray() add(E e) / addAll() / remove(Object o) / removeAll() / clear()
容器: 可以用来存储多个数据的结构
数组特点:
1. 存储的元素类型是兼容的 Person[] people = {new Person(),new Student()};
2. 长度是固定的,不允许修改 int[] nums = new int[3];
3. 存储的元素有序,可以通过下标来操作元素 nums[0] = 10; System.out.println(nums[1]);
数组的缺点:
1. 长度是固定的,不能很方便的对元素进行增删操作 (ArrayList)
2. 不好描述成对的数据,使用数组统计字符出现的次数 (HashMap)
2. List集合
Collection中的常用几个子类(java.util.List
集合、java.util.Set
集合)。
List
接口继承自Collection
接口,是单列集合的一个重要分支,习惯性地会将实现了List
接口的对象称为List集合。
List接口特点:
-
它是一个元素存取有序的集合。例如,存元素的顺序是11、22、33。那么集合中,元素的存储就是按照11、22、33的顺序完成的)。
-
它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。
-
集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素。
public class ListDemo {
public static void main(String[] args) {
List list = new ArrayList(); // 多态
list.add("ok");
list.add("hello");
list.add(5);
list.add("yes");
list.add(3.14);
list.add("ok");
list.add(true);
list.add("good");
list.add(new Person());
System.out.println(list);
list.add(1, "hi");
System.out.println(list);
list.set(2, "no");
System.out.println(list);
list.remove("ok"); // 只会移除第一次出现的元素
System.out.println(list);
list.remove(1);
System.out.println(list);
System.out.println(list.get(2));
list.clear();
System.out.println(list);
int[] nums = {1, 2, 3, 4};
String[]