Java—集合Collection(一)
存放单个数据内容,声明一个变量,
存放多个类型相同的数据内容,声明一个一维数组,
存放多个类型不同的数据内容,则创建一个对象,
存放多个类型相同的对象数据,创建一个对象数组,
多个类型不同的对象数据时,则准备一个集合。
集合框架顶层是:Collection和Map
Collection集合存取是:单个元素
Map集合中存取是:单对元素
一、Collection集合
是List、Queue以及Set接口的父类接口
1、方法add、addAll
boolean add(E e):集合内添加对象;返回True或者False
boolean addAll(Collection<? extends E> c):将集合c所有元素添加到集合内;返回True或者False
2、声明集合
package com.company.collection;
import com.company.collection.Persion;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class CollectionDemo {
public static void main(String[] args) {
Collection c1 = new ArrayList(); //创建集合对象
System.out.println("集合c1:"+c1); //集合c1:[]
//添加String
c1.add(new String("hello"));
System.out.println("集合c1:"+c1); //集合c1:[hello]
c1.add("collection");
System.out.println("集合c1:"+c1); //集合c1:[hello, collection]
//添加Interger
c1.add(Integer.valueOf(77));
c1.add(88);
System.out.println("集合c1:"+c1); //集合c1:[hello, collection, 77, 88]
//添加对象
c1.add(new Persion("kobe",18));
System.out.println("集合c1:"+c1); //集合c1:[hello, collection, 77, 88, Persion{name='kobe', age=18}]
Collection c2 = new ArrayList();
c2.add(66);
c2.add("hello java");
System.out.println(c2); //[66, hello java]
//addAll
boolean b=c1.addAll(c2);
System.out.println("添加元素是否成功"+b); //添加元素是否成功true
System.out.println("集合c1:"+c1); //集合c1:[hello, collection, 77, 88, Persion{name='kobe', age=18}, 66, hello java]
boolean d=c1.add(c2);
System.out.println("添加元素是否成功"+d); //添加元素是否成功true
System.out.println("集合c1:"+c1); //集合c1:[hello, collection, 77, 88, Persion{name='kobe', age=18}, 66, hello java, [66, hello java]]
}
}
特别注意1:添加对象时需要创建对象类
添加对象时需要创建对象类,并定义构造方法,不然输出的结果是对象地址
代码展示如下:
package com.company.collection;
import com.company.collection.Persion1;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
public class CollectionDemo1 {
public static void main(String[] args) {
Collection c1 = new ArrayList();
System.out.println("集合c1:"+c1); //集合c1:[]
//String
c1.add(new String("hello"));
System.out.println("集合c1:"+c1); //集合c1:[hello]
c1.add("collection");
System.out.println("集合c1:"+c1);
//Interger
c1.add(Integer.valueOf(77));
c1.add(88);
System.out.println("集合c1:"+c1); //集合c1:[hello, collection, 77, 88]
//添加对象
c1.add(new Persion1("kobe",18));
System.out.println("集合c1:"+c1); //集合c1:[hello, collection, 77, 88, Persion{name='kobe', age=18}]
}
}
创建对象类
package com.company.collection;
import java.util.Objects;
public class Persion1 {
private String name;
private int age;
public Persion1(String name, int age) {
this.name = name;
this.age = 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;
}
}
输出结果:
集合c1:[]
集合c1:[hello]
集合c1:[hello, collection]
集合c1:[hello, collection, 77, 88]
集合c1:[hello, collection, 77, 88, com.company.collection.Persion1@1a407d53]
3、总结
集合中添加单个元素或者单个对象,使用add();
集合中添加多个元素,使用addAll();
4、判断方法
boolean contains(Object o):判断集合是否包含指定对象
boolean containsAll(Collection<?> c):判断集合是否包含指定集合内的所有对象
package com.company.collection;
import com.company.collection.Persion;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class CollectionDemo {
public static void main(String[] args) {
Collection c1 = new ArrayList();
System.out.println("集合c1:"+c1); //集合c1:[]
//String
c1.add(new String("hello"));
System.out.println("集合c1:"+c1); //集合c1:[hello]
c1.add("collection");
System.out.println("集合c1:"+c1);
//Interger
c1.add(Integer.valueOf(77));
c1.add(88);
System.out.println("集合c1:"+c1); //集合c1:[hello, collection, 77, 88]
//添加对象
c1.add(new Persion("kobe",18));
System.out.println("集合c1:"+c1); //集合c1:[hello, collection, 77, 88, Persion{name='kobe', age=18}]
Collection c2 = new ArrayList();
c2.add(66);
c2.add("hello java");
System.out.println(c2); //[66, hello java]
//addAll
boolean b=c1.addAll(c2);
System.out.println("添加元素是否成功"+b); //添加元素是否成功true
System.out.println("集合c1:"+c1); //集合c1:[hello, collection, 77, 88, Persion{name='kobe', age=18}, 66, hello java]
boolean d=c1.add(c2);
System.out.println("添加元素是否成功"+d); //添加元素是否成功true
System.out.println("集合c1:"+c1); //集合c1:[hello, collection, 77, 88, Persion{name='kobe', age=18}, 66, hello java, [66, hello java]]
//集合c1:[hello, collection, 77, 88, Persion{name='kobe', age=18}, 66, hello java, [66, hello java]]
boolean b1 = c1.contains("hello");
System.out.println("是否包含:"+b1); //是否包含:true
boolean b2 = c1.contains("hello1");
System.out.println("是否包含:"+b2); //是否包含:false
boolean b3 = c1.contains(88);
System.out.println("是否包含:"+b3); //是否包含:true
boolean b4 = c1.contains(99);
System.out.println("是否包含:"+b4); //是否包含:false
boolean b5 = c1.contains(new Persion("kobe",18));
System.out.println("是否包含:"+b5); //是否包含:true
Collection c3=new ArrayList();
c3.add(7);
System.out.println("c1:"+c1); //c1:[hello, collection, 77, 88, Persion{name='kobe', age=18}, 66, hello java, [66, hello java]]
System.out.println("c3:"+c3); //c3:[7]
boolean b21 = c1.containsAll(c3);
System.out.println("b21:"+b21); //c3:false
c3.add(88);
System.out.println("c3:"+c3); //c3:[7, 88]
boolean b22=c1.containsAll(c3);
System.out.println("b22:"+b22); //b22:false
Collection c4=new ArrayList();
c4.add(88);
c4.add(66);
System.out.println("c4:"+c4); //c4:[88, 66]
boolean b23=c1.containsAll(c4);
System.out.println("b23:"+b23); //b23:true
boolean b24=c1.contains(c4);
System.out.println("b24:"+b24); //b24:false
Collection c5=new ArrayList();
c5.add(88);
c5.add("good");
System.out.println("c5:"+c5); //c5:[88, good]
boolean add1=c1.add(c5);
System.out.println("c1:"+c1); //c1:[hello, collection, 77, 88, Persion{name='kobe', age=18}, 66, hello java, [66, hello java], [88, good]]
System.out.println("c1-add-c5:"+add1); //c1-add-c5:true
}
}
4.1、总结
Integer、String对应的java里面就是给重写equals方法,
自定义的类没有重写equals方法。
比较的是集合对象使用contains
比较的是集合的每个元素containsAll
5、删除
boolean remove(Object o):从集合中删除对象
boolean removeAll(Collection<?> c):从集合中删除c集合里的所有对象
6、总结
add(Object):添加的是集合对象
contains(Object):比较的是集合的对象
remove(Object):删除的是集合对象
addAll(collection):添加的是集合的每个元素
containsAll(collection):比较的是集合的每个对象
removeAll(collection):删除集合的每个元素
7、集合的其他方法
clear():清空集合
size():集合的对象个数
isEmpty():判断是否为空
equals(Object o):判断集合是否相等
8、所有代码演练
package com.company.collection;
import com.company.collection.Persion;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
public class CollectionDemo {
public static void main(String[] args) {
Collection c1 = new ArrayList();
System.out.println("集合c1:"+c1); //集合c1:[]
//String
c1.add(new String("hello"));
System.out.println("集合c1:"+c1); //集合c1:[hello]
c1.add("collection");
System.out.println("集合c1:"+c1);
//Interger
c1.add(Integer.valueOf(77));
c1.add(88);
System.out.println("集合c1:"+c1); //集合c1:[hello, collection, 77, 88]
//添加对象
c1.add(new Persion("kobe",18));
System.out.println("集合c1:"+c1); //集合c1:[hello, collection, 77, 88, Persion{name='kobe', age=18}]
Collection c2 = new ArrayList();
c2.add(66);
c2.add("hello java");
System.out.println(c2); //[66, hello java]
//addAll
boolean b=c1.addAll(c2);
System.out.println("添加元素是否成功"+b); //添加元素是否成功true
System.out.println("集合c1:"+c1); //集合c1:[hello, collection, 77, 88, Persion{name='kobe', age=18}, 66, hello java]
boolean d=c1.add(c2);
System.out.println("添加元素是否成功"+d); //添加元素是否成功true
System.out.println("集合c1:"+c1); //集合c1:[hello, collection, 77, 88, Persion{name='kobe', age=18}, 66, hello java, [66, hello java]]
//集合c1:[hello, collection, 77, 88, Persion{name='kobe', age=18}, 66, hello java, [66, hello java]]
boolean b1 = c1.contains("hello");
System.out.println("是否包含:"+b1); //是否包含:true
boolean b2 = c1.contains("hello1");
System.out.println("是否包含:"+b2); //是否包含:false
boolean b3 = c1.contains(88);
System.out.println("是否包含:"+b3); //是否包含:true
boolean b4 = c1.contains(99);
System.out.println("是否包含:"+b4); //是否包含:false
boolean b5 = c1.contains(new Persion("kobe",18));
System.out.println("是否包含:"+b5); //是否包含:true
Collection c3=new ArrayList();
c3.add(7);
System.out.println("c1:"+c1); //c1:[hello, collection, 77, 88, Persion{name='kobe', age=18}, 66, hello java, [66, hello java]]
System.out.println("c3:"+c3); //c3:[7]
boolean b21 = c1.containsAll(c3);
System.out.println("b21:"+b21); //c3:false
c3.add(88);
System.out.println("c3:"+c3); //c3:[7, 88]
boolean b22=c1.containsAll(c3);
System.out.println("b22:"+b22); //b22:false
Collection c4=new ArrayList();
c4.add(88);
c4.add(66);
System.out.println("c4:"+c4); //c4:[88, 66]
boolean b23=c1.containsAll(c4);
System.out.println("b23:"+b23); //b23:true
boolean b24=c1.contains(c4);
System.out.println("b24:"+b24); //b24:false
Collection c5=new ArrayList();
c5.add(88);
c5.add("good");
System.out.println("c5:"+c5); //c5:[88, good]
boolean add1=c1.add(c5);
System.out.println("c1:"+c1); //c1:[hello, collection, 77, 88, Persion{name='kobe', age=18}, 66, hello java, [66, hello java], [88, good]]
System.out.println("c1-add-c5:"+add1); //c1-add-c5:true
System.out.println("c1集合:"+c1); //c1集合:[hello, collection, 77, 88, Persion{name='kobe', age=18}, 66, hello java, [66, hello java], [88, good]]
//remove删除存在的元素对象
boolean remove=c1.remove(66);
//删除不存在的元素对象
System.out.println("c1-remove,"+remove); //c1-remove,true
boolean remove1=c1.remove(89);
System.out.println("c1-remove,"+remove1); //c1-remove,false
System.out.println("c1集合:"+c1); //c1集合:[hello, collection, 77, 88, Persion{name='kobe', age=18}, hello java, [66, hello java], [88, good]]
//remove 集合对象
c1.remove(c2);
System.out.println("c1集合:"+c1); //c1集合:[hello, collection, 77, 88, Persion{name='kobe', age=18}, hello java, [88, good]]
System.out.println("-------------------------------------");
Collection collection=new ArrayList();
collection.add(new Persion("kobe",18));
System.out.println("collection"+collection);
// remove=c1.remove(new Persion("kobe",18));
// System.out.println("c1-remove:"+remove);
// System.out.println("c1集合:"+c1);
System.out.println("------------------removeAll-------------------");
System.out.println("c1"+c1); //c1[hello, collection, 77, 88, Persion{name='kobe', age=18}, hello java, [88, good]]
// boolean cc1=c1.removeAll(collection);
// System.out.println("c1-removeAll:"+cc1);
// System.out.println("c1集合:"+c1);
collection.add(29);
System.out.println("collection,"+collection); //collection,[Persion{name='kobe', age=18}, 29]
boolean cc1=c1.removeAll(collection);
System.out.println("c1-removeAll:"+cc1); //c1-removeAll:true 只要有一个元素被remove则为true
System.out.println("c1集合:"+c1); //c1集合:[hello, collection, 77, 88, hello java, [88, good]]
Collection collection1=new ArrayList();
collection1.add("yyy");
b3=c1.removeAll(collection1);
System.out.println("b3-remove:"+b3); //b3-remove:false
System.out.println("集合的长度:"+c1.size()); //集合的长度:6
System.out.println(0==c1.size() ? "是一个空集合" : "集合不为空"); //集合不为空
System.out.println(c1.isEmpty() ? "是一个空集合" : "集合不为空"); //集合不为空
// equals
Collection co1 = new ArrayList();
co1.add(1);
co1.add("test");
Collection co2 = new ArrayList();
co2.add(1);
co2.add("test");
System.out.println("co1:"+co1); //[1, test]
System.out.println("co2:"+co2); //[1, test]
boolean bb2 = co1.equals(co2);
System.out.println(bb2); //true
//集合转换为数组
Object[] objects = co1.toArray();
// 打印数组中的所有元素
System.out.println("数组中的元素有:" + Arrays.toString(objects)); //[1, test]
// 实现数组类型到集合类型的转换
Collection objects1 = Arrays.asList(objects);
System.out.println("集合中的元素有:" + objects1);//[1, test]
}
}