Java周记13

本周学习

容器,持有对象

复习

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;
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值