List接口
分为LinkedList 和 ArrayList 类
即我们俗称的线性表和链表
通常来说,数组的长度是一旦确定就不能改变的,但ArrayList类长度可变。看到一篇解释这个原因的博客,推荐给大家
区别
- ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
- 对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
- 对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
构造方法
LinkedList<Integer> ll = new LinkedList<Integer>();
ArrayList<Integer> al = new ArrayList<Integer>();
插入和查看 set() 方法 和 get()法
Map接口
实现了HashMap类和TreeMap类
用来存储键值对。
区别
HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。
####用法
HashMap <key,value>
put(key,value) #添加映射
get(key) #返回key对应的value
import java.util.HashMap;
public class Map {
public static void main(String []args){
HashMap<String,Integer> mm = new HashMap <String,Integer>();
mm.put("lyt",19);
mm.put("zxw",20);
System.out.print(mm.get("lyt"));
}
}
运行结果
19
Set接口
Set用来存储不重复的数据
实现了HashSet和TreeSet
HashSet<String> hs = new HashSet<String>();
TreeSet<String> ts = new TreeSet<String>();
方法:
添加 add()
检查 contains()
一些共性
- 均在java.util包中
- 构造时均要在尖括号中表明元素类型
- 大小均是可变的
类和接口的区别
- 接口类似于类,但接口的成员都没有执行方式,它只是方法、属性、事件和索引的组合而已,并且也只能包含这四种成员;类除了这四种成员之外还可以有别的成员(如字段)。
- 不能实例化一个接口,接口只包括成员的签名;而类可以实例化(abstract类除外)。
- 接口没有构造函数,类有构造函数。
- 接口不能进行运算符的重载,类可以进行运算符重载。
- 接口的成员没有任何修饰符,其成员总是公共的,而类的成员则可以有修饰符(如:虚拟或者静态)。
- 派生于接口的类必须实现接口中所有成员的执行方式,而从类派生则不然。