知识点:
- 数组就是一种容器,可以在其中放置对象或基本类型数据;
- 数组的优势:是一种简单的线性序列,可以快速的访问数组元素,效率高。如果从效率和类型检查的角度讲,数组是最好的。
- 数组的劣势:不灵活。容量要事先定义好,不能随着需求的变化而扩容。
- 集合(容器):
- 泛型是JDK1.5以后增加的,它可以帮助我们建立类型安全的集合。
- 泛型的本质就是:“数据类型的参数化”。我们可以把“泛型”理解为数据类型的一个占位符(形式参数),即告诉编译器,在调用泛型的时必须传入实际类型。
- 普通方法:
/*
测试泛型
*/
public class TestGeneric {
public static void main(String[] args) {
MyCollection mc = new MyCollection();
mc.set("晚风",0);
mc.set("花间",1);
mc.set("寺中人",2);
Integer a =(Integer) mc.get(1);
String b = (String) mc.get(2);
/* mc.get(1);
mc.get(2);
mc.get(3);
*/
}
}
class MyCollection{
//定义一个数组
Object[]objs=new Object[5];
public void set (Object obj,int index){
objs[index]=obj;
}
//获得索引内容
public Object get(int index){
return objs[index];
}
}
- 泛型:
/*
测试泛型
*/
public class TestGeneric02 {
public static void main(String[] args) {
MyCollection02<String> mc = new MyCollection02<String>();
mc.set("晚风",0);
String b = mc.get(0);
}
}
class MyCollection02<E>{
//定义一个数组
Object[]objs=new Object[5];
public void set (E e,int index){
objs[index]=e;
}
//获得索引内容
public E get(int index){
return (E)objs[index];
}
}
1 Collection表示一组对象,它是集中,收集得意思。Collection接口的两个子接口是List,Set接口。
代码练习相关方法:
import java.util.ArrayList;
import java.util.Collection;
public class TestList {
public static void main(String[] args) {
Collection<String> c = new ArrayList<>();
System.out.println(c.size());
System.out.println(c.isEmpty());
c.add("晚风");
c.add("花间");
c.add("寺中人");
System.out.println(c.size());
System.out.println(c.contains("关注我的博客"));
Object[]objs = c.toArray();
System.out.println(objs);
c.remove("晚风");
System.out.println(c);
c.clear();
System.out.println(c.size());
}
}
运行结果:
0
true
3
false
[Ljava.lang.Object;@1b6d3586
[花间, 寺中人]
0
进程已结束,退出代码 0
集合的交集和并集:
import java.util.ArrayList;
import java.util.List;
public class TestList02 {
public static void main(String[] args) {
test01();
}
public static void test01() {
List<String> list01 = new ArrayList<>();
list01.add("aa");
list01.add("bb");
list01.add("cc");
List<String> list02 = new ArrayList<>();
list02.add("aa");
list02.add("dd");
list02.add("ee");
System.out.println("list01:" + list01);
list01.addAll(list02);
System.out.println("list01:" + list01);
list01.remove(list02);
System.out.println("list01:" + list01);
list01.retainAll(list02);
System.out.println("list01:" + list01);
System.out.println(list01.containsAll(list01));
}
}
list01:[aa, bb, cc]
list01:[aa, bb, cc, aa, dd, ee]
list01:[aa, bb, cc, aa, dd, ee]
list01:[aa, aa, dd, ee]
true