java语言基础--集合
集合类的特点:
- List:里面存放的数据是有序可重复的;
- Set:无序不可重复;
- Queue:是一个队列,里面的数据可以可以重复,先进先出;
数组和集合的区别:
- 数组既可以存储基本 数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用类型存储的是地址值;
- 集合只能存储引用数据类型(对象),存储基本数据类型时,会自动装箱,变成相应的包装类;
- 数组的长度是固定的,不能自动增长;
- 集合的长度是可变的,可以根据元素的增加而自动增长。
集合继承体系图:

Collection常用方法:
import java.util.ArrayList; import java.util.Collection; public class Main { public static void main(String[] args) { Collection c = new ArrayList(); c.add("a"); c.add("b"); c.add("c"); c.add("d"); System.out.println(c.size()); System.out.println(c); //在ArrayList的爷爷类AbstractCollection中重写了toString() 方法; c.remove("a"); System.out.println(c); //遍历里面的元素 Object[] objects = c.toArray(); for(int i = 0; i< objects.length; i++) { System.out.println(objects[i]); } //清空集合 c.clear(); System.out.println(c.size()); //判断是否包含 System.out.println(c.contains("b")); //判断是否为空 System.out.println(c.isEmpty()); } }
Collection存放添加自定义类
Person.java
package com.dss.bean; public class Person { private String name; private int 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; } public Person() { } public Person(String name, int age) { super(); this.name = name; this.age = age; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj instanceof Person) { Person p = (Person) obj; if (this.name.equals(p.getName()) && this.age == (p.getAge())) { return true; } } return false; } }
Main.java
package com.dss.collection; import java.util.ArrayList; import java.util.Collection; import com.dss.bean.Person; public class Main { @SuppressWarnings({ "unchecked", "rawtypes" }) public static void main(String[] args) { Collection c = new ArrayList(); c.add(new Person("马云",14)); c.add(new Person("刘强东",88)); c.add(new Person("雷军",56)); System.out.println(c.size()); Object[] o = c.toArray(); for(int i = 0; i< o.length; i++) { System.out.println(o[i]); } //需要重写Person的equals方法 Person p = new Person("马云",14); System.out.println(c.contains(p)); c.remove(p); System.out.println(c.contains(p)); c.clear(); } }
Collection类中的一些带All的方法
import java.util.ArrayList; import java.util.Collection; public class Main2 { @SuppressWarnings({ "unchecked", "rawtypes" }) public static void main(String[] args) { Collection c = new ArrayList(); c.add("a"); c.add("b"); c.add("c"); Collection c1 = new ArrayList(); c1.add("a"); c1.add("b"); c.addAll(c1); System.out.println(c); boolean flag = c.containsAll(c1); System.out.println(flag); c.removeAll(c1); System.out.print(c); } }
浙公网安备 33010602011771号