如上图,Map(映射)是遵循Key:value这样的形式的集合。key、value的类型可以是任何的java对象。
我们大部分情况下,都会使用HashMap这个Map的实现类。所以如果想得到一个Map的实例的话可以使用HashMap。
import java.util.Map;
import java.util.HashMap;
// key value 得是 Java 类型
Map<key,value> map = new HashMap<>();
举个例子,我们把1、2、3、4、5、6、7这些数字映射为英文的星期,利用Map如何完成呢?
首先我们可以使用**map.put(key,value)**这个方法完成数据的存储。
PS知识点扩充:
由于Map的键和值都是java对象类型,所以我们在实际创建的时候也需要指定对应的类型,上面的案例中key是数字类型:integer,value是字符串类型:String,所以我们可以用Map
实际上java也有类似String这样的对象类型,int的java对象就是Integer;boolean的java对象就是Boolean;double的java 对象就是Double,byte对应的java对象是Byte。有java对象和没有对象的区别在于有对象的默认值是null,比如int的默认值是0,但是Interger的默认值是null;boolean的默认值是false,但是Boolean的默认值是null。
java基本数据类型里面:int byte short long float double char的默认值是0 0.0 \u0000;布尔值boolean是false,除了基本数据类型,其余默认都是null。
// 实例化Map对象
Map<Integer,String> map = new HashMap<>();
map.put(1,"Monday");
map.put(2,"Tuesday");
map.put(3,"Wednesday");
map.put(4,"Thursday");
map.put(5,"Friday");
map.put(6,"Saturday");
map.put(7,"Sunday");
以上我们就完成了集合的储存。如果我们想知道数字3对应的值,那么我们就可以使用**map.get(key)**这个方法来获取了。
String weekText = map.get(3);
System.out.println(weekText);
由于Map也是一种集合数据,所以也有集合大小的方法:size()和遍历能力for。
int size = map.size();
System.out.println(size);
map的遍历相对麻烦一点,因为是key:value格式,所以我们一般先得到这个数据格式的集合(entrySet),完整的例子如下:
for (Map.Entry<Integer,String> entry : map.entrySet()){
System.out.println("Key = " + entry.getKey() +
", Value = " + entry.getValue());
}
//Set entrySet( )返回此映射中包含的映射关系的 Set 视图。
完整的Map接口方法可以查看文档
List是ArrayList得接口,支持统一类型数据得集合存储。
比如说储存字符串集合:
List<String> strings = new ArrayList<>();
List本质上就是一个动态数组对象,可以方便的储存集合对象。完成实例化之后,就可以使用List的add方法进行数据的添加。List既然是动态数组那也就基本数组的特点,可以获取长度size(),可以根据索引获取具体的值get(索引),ArrayList的索引是从0开始的。
public static void main(String[] args){
// 创建一个 ArrayList 存储字符串集合
ArrayList<String> strs = new ArrayList<>();
// 添加数据到 ArrayList 实例里
strs.add("张三");
strs.add("李四");
// 获取集合的长度
int size = strs.size();
// 使用 for 循环迭代每一条记录
for(int i=0;i<size;i++){
// 根据索引获取值,值的类型是 String
String str = strs.get(i);
System.out.println(str);
}
//遍历方法二
for(String str : strs){
System.out.println(str);
}
}