Java中List和Map接口之间的区别
ListvsMapinterface接口
在这里,我们将看到List与Java中的Map接口有何不同,并且我们将看到以下几点,
列表接口
List是在java.util包中定义的接口。
List是Java中的数据结构。
列表对象以值的形式表示。
List接口的性能低于Map接口。
List接口的实现类是ArrayList,LinkedList和VectorandStack等。
List与Collection没有区别,换句话说,List和Collection之间存在关系(即,它是Collection接口的子接口,因为List实现了Collection接口)。
列表不提供唯一性(即值允许重复,或者我们可以多次插入一个对象)。
如果我们要表示一组保留“插入顺序”的单个对象(即插入顺序必须与检索顺序相同)。
如果要将一组对象表示为单个实体,则应使用List。
列表用于一组单个对象。
示例
假设我们有一个包含很少元素的列表。在这里,我们以[10,20,30,50,null,30]的顺序添加元素,如果我们要检索元素,则检索元素的顺序必须相同(即,需要相同的插入以及元素的检索顺序。)因此输出将是相同的,顺序将类似于[10,20,30,null,30]。
//Java程序演示List接口的行为
import java.util.*;
class ListInterface {
public static void main(String[] args) {
//创建一个实例
List list = new ArrayList();
//通过使用add()方法添加元素
list.add(10);
list.add(20);
list.add(30);
list.add(50);
list.add(null);
//如果再加30,就不会有任何错误
//因为允许重复元素
list.add(30);
//显示列表元素
System.out.println("Retrieval order of the elements in List is :" + list);
}
}输出结果
E:\Programs>javac ListInterface.java E:\Programs>java ListInterface Retrieval order of the elements in List is :[10, 20, 30, 50, null, 30]
现在,我们将看到Map与Java中的List接口有何不同,并且我们将看到以下几点,
Map接口
Map是在java.util包中定义的接口。
Map是Java中的数据结构。
Map基于散列,并且Map对象以键值对的形式表示,并且键值对称为entry。
Map接口的性能比Set接口高。
在Map接口的情况下,如果我们知道按键,则没有冲突概念。
Map接口的实现类是HashMap,LinkedHashMap和ConcurrentHashMap等。
Map与Collection不同,换句话说,Map与Collection之间没有关系(即,它不是Collection接口的子接口,因为Map未实现Collection接口。
映射不能完全提供唯一性(即,键不允许重复,值不允许重复)。
如果我们想将一组对象表示为键值对,则应该使用Map。
该映射用于一组键值对。
示例
假设我们有一个包含很少元素的Map。在这里,我们按照{Java=1000,C=2000,C++=3000,Ruby=4000,Python=1000,null=null,Django=null,null=7000}的顺序添加元素,如果我们要检索元素因此检索元素的顺序可以不同(即不保留插入顺序,也不必与元素的插入和检索顺序相同。)因此输出将不同,顺序将类似于{Ruby=4000,C=2000,Django=null,Python=1000,C++=3000,null=7000,Java=1000}
//Java程序演示Map的行为
import java.util.Collection;
import java.util.Map;
import java.util.HashMap;
class MapClass {
public static void main(String[] args) {
//创建一个实例 of HashMap
Map map = new HashMap();
//通过使用put()方法在Map中添加一些值
map.put("Java", 1000);
map.put("C", 2000);
map.put("C++", 3000);
map.put("Ruby", 4000);
map.put("Python", 1000);
map.put("null", null);
map.put("Django", null);
/* Here we will not get any error but one null is accepted for keys*/
map.put("null", 7000);
//显示映射的检索顺序
System.out.println("Current Map list is :" + map);
//通过使用values()查找Map的值
Collection values = map.values();
//显示映射的值
System.out.println("Current Map Key values is :" + values);
}
}输出结果
E:\Programs>javac MapClass.java
E:\Programs>java MapClass
Current Map list is :{Ruby=4000, C=2000, Django=null,
Python=1000, C++=3000, null=7000, Java=1000}
Current Map Key values is :[4000, 2000, null, 1000, 3000, 7000, 1000]