java中的常见的几个接口

collection接口

方法:

add()  //添加

remove()//删除

size()//长度

isempty()//判断是否为空

contains();//判断该元素是否在接口中

clear();//全部删除

iterator();//遍历

一.List 接口:有序+可重复

 实现类:
1. ArrayList:数组,访问快,添加删除慢
   List list=new ArrayList();
    list.add("abc");
    list.add("efg");
    list.add("a");
    System.out.println(list.get(1));//efg
    list.remove("abc");
    System.out.println(list.set(0,"kkk"));//kkk,efg,a
    System.out.println(list.indexOf("a"));//1
    System.out.println(list.lastIndexOf("kkk"));//0
   

 

2.LInkedList:链表,插入删除快,访问慢,需要一个节点一个节点来访问

   

List<String> list=new LinkedList<>();
list.add("王子文");
list.add("蒋欣");
list.add("刘涛");
list.add("杨幂");
list.add("王子文");
System.out.println(list.size());
for(String l:list){
    System.out.println(l);
}
System.out.println("***********");
Iterator<String> i=list.iterator();
while(i.hasNext()){
    String s=i.next();
    System.out.println(s);
 

其他方法与上面相同,只是不能通过索引值来访问数据

这里是两种常见的遍历方式。

长度为5,体现了list接口可以重复的特点

3.其次就是Vector :数组

4.Stack :继承Vector类,对于数据结构中的栈,以先进后出(FILO)的方式来存储数据。

Stack <String>s=new Stack<>();
s.push("王子文");
s.push("刘涛");
s.push("蒋欣");
s.push("杨幂");
s.push("关晓彤");
System.out.println(s.search("杨幂"));//2 查询该对象在相对于栈顶位置1的索引值
System.out.println(s.peek());//关晓彤  peek只是查看栈顶该数据不会出栈
System.out.println(s.pop());//关晓彤  pop将栈顶数据移除栈
System.out.println(s.pop());//杨幂  pop将栈顶数据移除栈
System.out.println(s.pop());//蒋欣  pop将栈顶数据移除栈
System.out.println(s.pop());//刘涛  pop将栈顶数据移除栈

 

二、set接口:无序+不可重复

实现类:

HashSet:   jdk  1.8以后:数组+链表(链表长度<8) 数组+红黑树(链表长度>8)

TreeSet:底层实现为二叉树,元素排好序(升降)

LinkedHashSet:底层为双重链表(有序+不可重复)

   Set<String>  set=new TreeSet<>();
    set.add("ss4");
    set.add("ss1");
    set.add("ss2");
    set.add("ss3");
    for(String s:set) {
        System.out.println(s);
    }
}

 

 

Comparator和Comparable的区别

  • Comparator:相当于找一个第三方的裁判,比较两个

  • Comparable:自己(this)和别人(参数)比较,自己需要实现Comparable接口,重写比较的规则compareTo方法

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值