Java接口

Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能),接口是抽象类的集合。

Java接口的特性:
• 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错)。
• 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误)。
• 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。

1.接口可以多继承。
2.接口的方法声明必须是 public abstract 即便不写默认也是。
3.接口里面不能包含方法具体实现。
4.类实继承接口必须实现接口里申明的全部方法,除非该类是抽象类。
5.类里面可以声明 public static final 修饰的变量。
6.接口不能被实例化,但是可以被实现类创建。
8.接口是没有构造方法的,所有的方法必须是抽象方法。
9.接口不包含成员变量,static、final除外。
10.接口支持多继承,接口不是被类继承了,而是要被类实现。

接口与类:
Collection分为Set和List:
1、List(有序,可重复,集):实现该接口的两个类,一是ArrayList和LinkedList。
2、Set(无序,不可重复,列表):不能生成对象,HashSet和TreeSet是实现该接口的两个类。
3、Map(健值对,键唯一,值不唯一,映射)。用的多的是:HashMap

集合框架体系如图所示:
在这里插入图片描述

△List集合的常用操作(没有数组上限的数组):
1、list中的添加(add(e))、获取方法(get(index))、删除方法(remove(index))
2、list中是否包含某种元素(contains(Object o);返回true或者false)
3、list中根据索引将元素值改变(替换):.set(index,element)(替换原来的元素),
.add(index,element)(将索引的位置往后移)
4、查看判断元素的索引:.indexOf();和lastlndexOf()
5、利用list索引位置重新生成一个新的List:.subList(fromlndex,toIndex); .size();
6、对比两个list的所有元素:两个相等对象的equals方法一定为true, 但两个hashcode相等的对象不一定是相等的对象
7、将集合转为数组:.toArray()

Java中的Ser:
不能存储相同的元素,不能出现重复的数据,可以出现空数据,数据是无序的,,

常见的方法:
1 add( ) 向集合中添加元素
2 clear( ) 去掉集合中所有的元素
3 contains( ) 判断集合中是否包含某一个元素
4 isEmpty( ) 判断集合是否为空
5 iterator( ) 主要用于递归集合,返回一个Iterator()对象
6 remove( ) 从集合中去掉特定的对象
7 size( ) 返回集合的大小

HashSer :哈希表边存放的是哈希值。 按照哈希算法来存取集合中的对象,存取速度比较快,

TreeSet:不能写入空数据,写入的数据是有序的,也不能写入重复的数据。
TreeSet的自定义排序代码:

在这里插入图片描述

迭代器(Iterator):
功能简单,只能单向移动。
iterator()方法是java.lang.Iterable接口,被Collection继承。
可使用next()获得序列中的下一个元素。
可使用hasNext()检查序列中是否还有元素。
可使用remove()将迭代器返回的元素删除。
Object next():返回迭代器刚越过的元素的引用,返回值是Object,需要强制转换成自己需要的类型。
boolean hasNext():判断容器内是否还有可供访问的元素。
void remove():删除迭代器刚越过的元素。

最简单的使用方法:
在这里插入图片描述

使用迭代器遍历ArrayList集合:
在这里插入图片描述

使用迭代器遍历Set集合:
在这里插入图片描述

使用迭代器遍历Map集合:
在这里插入图片描述
Java中LinkedList的方法:
链状结构,查询速度很慢,但增删的速度快
add():在链表后加一个元素。
addFirst():在链头插入一个元素。
addLast():在链表尾部添加一个元素。
add(index,E):在指定的位置插入一个元素。
remove():移除链表中第一个元素。
removeFirstOccurrence():移除链表中第一次出现所在位置的元素。
removeLastOccurrence():移除链表中最后一次出现所在位置的元素。
get():按照下边获取元素。
getFirst():获取第一个元素。
getLast():获取第二个元素。
push():与addFirst一样。
pop():与removeFirst一样。
poll():查询并移除第二个元素。
peek():获取第一个元素,但不移除。
peekFirst():获取第一个元素,但是不移除。
peekLast():获取最后一个元素,但不移除。
offer():在链表尾部插入一个元素。
offerFirst():与addFirst一样。
offerLast():与addLast一样。

Java中的ArrayList:数组结构,长度不变,查询速度很快,但增删的速度慢。
ArrayList的自定义排序代码:
在这里插入图片描述

Map的四种遍历方法:
1、
在这里插入图片描述

2、使用for循环:
在这里插入图片描述

3、使用迭代器:
使用泛型:
在这里插入图片描述

不使用泛型:
在这里插入图片描述

4、通过键找值遍历:
在这里插入图片描述

Map自带的各种类:
• HashMap
• Hashtable
• Properties
• LinkedHashMap
• IdentityHashMap
• TreeMap
• WeakHashMap
• ConcurrentHashMap

写法与遍历:
获取Integer的值:
在这里插入图片描述

获取String的值:
在这里插入图片描述

同时获取Integer和String的值:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值