本周学习
容器,持有对象
复习
1.ArrayList/Vector 数组,ArrayList默认长度为0
LinkedList 链表
需要线程安全的时候用Vector
不存在线程安全问题的时,且查找较多用ArrayList
不存在线程安全问题时,增加或删除元素较多用LinkedList
2.
ArrayList可以存放任意数量的对象,长度不受限制,因为有自动扩容器
Collection<String> c=new ArrayList<>();
c.add("aaa");
c.add("bbb");
c.add("ccc");
System.out.println(c);
//输出【aaa,bbb,ccc】
for(String i:c){
System.out.prinyln(i+",");}
//输出 aaa,bbb,ccc,
Iterator< String> it=c.iterator();
while(it.hasNext()){
System.out.println(it.next()+",");}//当it有下一个
//输出 aaa,bbb,ccc,
Collection<String> c1=new LinkedList<>();
c1.add("ddd") ;
c1.add(eee") ;
c1.add("fff") ;
c1.add("ccc") ;
c.addAll(c1);//求并集
System.out.println(c);
//输出 【 aaa,bbb,ccc,ddd,eee,fff,ccc】
c.retainAll(c1);//求交集
System.out.println(c);
//输出 【ccc】
c.removeAll(c1);//相减
System.out.println(c);
//输出 【aaa,bbb】
3.List
有序性:List中每个元素都有索引标记,可以根据元素的索引标记(在List中的位置)访问元素
可重复性:允许加入重复的元素,即List通常允许满足e1.equals(e2)的元素重复加入元素
List<String> l1=new ArrayList<>();
l1.add(0,"aaa");
l1.add(2,"ccc");
l1.add(1,"bbb");
l1.add(4,"eee");
System.out.println(l1);
//报错,添加元素的时候下标必须从小到大,且在最后添加
//正确添加
l1.add(0,"aaa");
l1.add(1,"ccc");
l1.add(2,"bbb");
l1.add(3,"eee");
System.out.println(l1);
//输出【aaa,ccc,bbb,eee】
l1.add(2,"xxx");
System.out.println(l1);
//输出 【aaa,ccc,xxx,bbb,eee】
l1.set(2,"xxx");
//在原序列为【aaa,ccc,bbb,eee】的情况下
//输出为【aaa,ccc,xxx,eee】
l1.get(2);
System.out.println(l1);
//输出 xxx
System.out.println(l1.indexof("bbb"));
//输出 3 如果不存在bbb则输出-1
System.out.println(l1,lastIndexof("bbb"));
//输出 容器里从右往左数,第一次出现bbb的位置下标
作业八
1.泛型
//定义一个泛型类
class MyClass<E> implements MyInterface<Double>{
private E age;
public E getAge(){
return age;
}
public void setAge(){
this.age=age;
}
public void print(Double obj){
System.out.println(obj);
}
}
//定义一个泛型接口
interface MyInterface<T>{
T print();
}
//main方法
class Test{
public static<V> void MyFunction(V o){
System.out.println(o.getClass().getName());
}
public static void main(String[] args){
MyClass<Integer> my=new MyClass<>();
my.print(36.9);
}
}
2.比较对象的某个属性,改写compareTo方法
class Dog implements Comparable{
Stringname;
int age;
public Dog(String name;int age){
this.name=name;
this.age=age;
}
public String toString(){
return name+"年龄是"+age;
}
public int compareTo(Dog d){
if(this.age>d.age){
return 1;
}else if(this.age<d.age){
return -1;
}
return 0;
}
}