集合的基础知识学习
刘意的课程笔记
collection
public class CollectionDemo {
public static void main(String[] args) {
//测试不带all的方法
//Collection c = new Collection();//错误,因为接口不能实例化
Collection c = new ArrayList();
//如果输出不是地址值,说明重写了tostring方法
System.out.println("c:" + c);
}
}
输出
add方法
public class CollectionDemo {
public static void main(String[] args) {
//测试不带all的方法
//Collection c = new Collection();//错误,因为接口不能实例化
Collection c = new ArrayList();
//boolean add(Object obj);
System.out.println("add:" + c.add("hello"));
//如果输出不是地址值,说明重写了tostring方法
System.out.println("c:" + c);
}
}
add方法永远都是正确的,由此可见ArrayList是可以存重复对象的
public class CollectionDemo {
public static void main(String[] args) {
//测试不带all的方法
//Collection c = new Collection();//错误,因为接口不能实例化
Collection c = new ArrayList();
//boolean add(Object obj);
//System.out.println("add:" + c.add("hello"));
c.add("hello");
c.add("world");
c.add("java");
//如果输出不是地址值,说明重写了tostring方法
System.out.println("c:" + c);
}
}
remove用法
public class CollectionDemo {
public static void main(String[] args) {
//测试不带all的方法
//Collection c = new Collection();//错误,因为接口不能实例化
Collection c = new ArrayList();
//boolean add(Object obj);添加一个元素
//System.out.println("add:" + c.add("hello"));
c.add("hello");
c.add("world");
c.add("java");
//void clear();移除所有元素
//c.clear();
//boolean remove(Object obj);移除一个元素
System.out.println("remove:" + c.remove("hello"));
System.out.println("remove:" + c.remove("javaee"));
//如果输出不是地址值,说明重写了tostring方法
System.out.println("c:" + c);
}
}
contain用法
public class CollectionDemo {
public static void main(String[] args) {
//测试不带all的方法
//Collection c = new Collection();//错误,因为接口不能实例化
Collection c = new ArrayList();
//boolean add(Object obj);添加一个元素
//System.out.println("add:" + c.add("hello"));
c.add("hello");
c.add("world");
c.add("java");
//void clear();移除所有元素
//c.clear();
//boolean remove(Object obj);移除一个元素
//System.out.println("remove:" + c.remove("hello"));
//System.out.println("remove:" + c.remove("javaee"));
//boolean contains(Object obj);判断集合中是否包含指定的元素
System.out.println("contains:" + c.contains("hello"));
System.out.println("contains:" + c.contains("android"));
//如果输出不是地址值,说明重写了tostring方法
System.out.println("c:" + c);
}
}
增加和删除改动了集合,但是判断不会
isEmpty用法
public class CollectionDemo {
public static void main(String[] args) {
//测试不带all的方法
//Collection c = new Collection();//错误,因为接口不能实例化
Collection c = new ArrayList();
//boolean add(Object obj);添加一个元素
//System.out.println("add:" + c.add("hello"));
c.add("hello");
c.add("world");
c.add("java");
//void clear();移除所有元素
//c.clear();
//boolean remove(Object obj);移除一个元素
//System.out.println("remove:" + c.remove("hello"));
//System.out.println("remove:" + c.remove("javaee"));
//boolean contains(Object obj);判断集合中是否包含指定的元素
//System.out.println("contains:" + c.contains("hello"));
//System.out.println("contains:" + c.contains("android"));
//void contains(Object obj);判断集合中是否包含指定的元素
System.out.println("isEmpty:" + c.isEmpty());
//如果输出不是地址值,说明重写了tostring方法
System.out.println("c:" + c);
}
}
size用法
public class CollectionDemo {
public static void main(String[] args) {
//测试不带all的方法
//Collection c = new Collection();//错误,因为接口不能实例化
Collection c = new ArrayList();
//boolean add(Object obj);添加一个元素
//System.out.println("add:" + c.add("hello"));
c.add("hello");
c.add("world");
c.add("java");
//void clear();移除所有元素
//c.clear();
//boolean remove(Object obj);移除一个元素
//System.out.println("remove:" + c.remove("hello"));
//System.out.println("remove:" + c.remove("javaee"));
//boolean contains(Object obj);判断集合中是否包含指定的元素
//System.out.println("contains:" + c.contains("hello"));
//System.out.println("contains:" + c.contains("android"));
//void contains(Object obj);判断集合中是否包含指定的元素
//System.out.println("isEmpty:" + c.isEmpty());
//void contains(Object obj);判断集合中是否包含指定的元素
System.out.println("size:" + c.size());
//如果输出不是地址值,说明重写了tostring方法
System.out.println("c:" + c);
}
}
再看一下带all的方法
public class CollectionDemo2 {
public static void main(String[] args) {
//创建集合1
Collection c1 = new ArrayList();
c1.add("abc1");
c1.add("abc2");
c1.add("abc3");
c1.add("abc4");
//创建集合2
Collection c2 = new ArrayList();
c2.add("abc5");
c2.add("abc6");
c2.add("abc7");
System.out.println("c1:" + c1);
System.out.println("c2:" + c2);
}
}
因为add和addAll都返回的是true,所以添加一定是可以的,说明也是不重复的
addAll方法
public class CollectionDemo2 {
public static void main(String[] args) {
//创建集合1
Collection c1 = new ArrayList();
c1.add("abc1");
c1.add("abc2");
c1.add("abc3");
c1.add("abc4");
//创建集合2
Collection c2 = new ArrayList();
c2.add("abc4");
c2.add("abc5");
c2.add("abc6");
c2.add("abc7");
//boolean addAll( Collection c);添加一个集合的元素
System.out.println("addAll:" + c1.addAll(c2));
System.out.println("c1:" + c1);
System.out.println("c2:" + c2);
}
}
removeAll方法
public class CollectionDemo2 {
public static void main(String[] args) {
//创建集合1
Collection c1 = new ArrayList();
c1.add("abc1");
c1.add("abc2");
c1.add("abc3");
c1.add("abc4");
//创建集合2
Collection c2 = new ArrayList();
c2.add("abc4");
c2.add("abc5");
c2.add("abc6");
c2.add("abc7");
//boolean addAll( Collection c);添加一个集合的元素
//System.out.println("addAll:" + c1.addAll(c2));
//boolean removeAll( Collection c);移除一个集合的元素
System.out.println("removeAll:" + c1.removeAll(c2));
System.out.println("c1:" + c1);
System.out.println("c2:" + c2);
}
}
只要有一个被移除了就返回true
retainAll用法
public class CollectionDemo2 {
public static void main(String[] args) {
//创建集合1
Collection c1 = new ArrayList();
c1.add("abc1");
c1.add("abc2");
c1.add("abc3");
c1.add("abc4");
//创建集合2
Collection c2 = new ArrayList();
c2.add("abc4");
c2.add("abc5");
c2.add("abc6");
c2.add("abc7");
//boolean addAll( Collection c);添加一个集合的元素
//System.out.println("addAll:" + c1.addAll(c2));
//boolean removeAll( Collection c);移除一个集合的元素
//System.out.println("removeAll:" + c1.removeAll(c2));
//boolean containsAll( Collection c);判断集合中是否包含制动的集合元素,只有包含所有的元素才叫包含
//System.out.println("containsAll:" + c1.containsAll(c2));
//boolean retainAll( Collection c);判断集合中是否包含制动的集合元素,只有包含所有的元素才叫包含
//假设有两个集合AB
//A对B做交集,最终的结果保存在A中,B不变
//返回值表示的是A是否发生过改变
System.out.println("retainAll:" + c1.retainAll(c2));
System.out.println("c1:" + c1);
System.out.println("c2:" + c2);
}
}
假设有两个集合AB,A对B做交集,最终的结果保存在A中,B不变,返回值表示的是A是否发生过改变