JAVA常用的数据结构Linked--List/HashMap/HashSet

JAVA常用的数据结构Linked–List/HashMap/HashSet

1.LinkedList

1.1简介

Java的LinkedList是一种常用的数据容器。LinkedList 实现了List 接口,能对它进行列表操作。
LinkedList 实现了Deque 接口,即能将LinkedList当作双端队列使用。所以,许多算法题都可以用此来解决。

1.2初始化

运用多态的知识和构造方法

public static void testLinkedList(){
    List<Integer>list= new LinkedList<>();
    Queue<Integer>queue= new LinkedList<>();
    Deque<Integer>deque= new LinkedList<>();
    LinkedList<Integer>linkedList= new LinkedList<>();
}

1.3常用方法

public boolean add(E e)//链表末尾添加元素,返回是否成功;
public void add(int index, E element) //向指定位置插入元素;

public void addFirst(E e)//添加到第一个元素;
public void addLast(E e)//添加到最后一个元素;
    
public boolean offer(E e)//向链表末尾添加元素,返回是否成功;
public boolean offerFirst(E e)//头部插入元素,返回是否成功;
public boolean offerLast(E e)//尾部插入元素,返回是否成功;
    
public E get(int index)//返回指定位置的元素;
public E getFirst()//返回第一个元素;
public E getLast()//返回最后一个元素;
    
public E set(int index, E element)//设置指定位置的元素;

2.LinkedHashMap

2.1简介

HashMap所存储的元素是无序的,LinkedHashMap类是HashMap的子类,它可以依照插入的顺序来存储元素,LinkedHashMap的存储结构采用了双重链表,因此元素的增加、修改和删除效率都比较高。LinkedHashMap采用的hash算法和HashMap相同,但它扩展了Entry(结点,用于存储key和value)。

2.2初始化

/*三种常用的构造方法
LinkedHashMap()
LinkedHashMap(int initialCapacity)
LinkedHashMap(Map m)
*/
public static void testHashMap(){
    Map<Integer,Integer>map1= new LinkedHashMap<>();
    Map<Integer,Integer>map2= new LinkedHashMap<>(3);
    Map<Integer,Integer>map3= new LinkedHashMap<>(map1);
}

2.3常用方法

遍历LinkedHashMap,与插入顺序相同,其余API与HashMap相同

public void put(Object Key, Object Value);//添加元素
public void clear();//清空Map

public V get(Object key);//根据键取值
public V remove(Object key);//根据键删除值

public boolean containsKey(Object key);//判断有无此元素
public boolean containsValue(Object value);//判断有无此元素

//遍历LinkedHashMap,与插入顺序相同
public void testIterator(){
LinkedHashMap<String,String> linkedHashMap = new LinkedHashMap();
    linkedHashMap.put("a", "a");
    linkedHashMap.put("b", "b");
    linkedHashMap.put("c", "c");
    Iterator it = linkedHashMap.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry entry = (Map.Entry) it.next();
        System.out.println("key:" + entry.getKey() 
                           + "   value:" + entry.getValue());
    }
}

3.LinkedHashSet

3.1简介

LinkedHashSet是Set集合的一个子类,具有set集合不重复的特点,遍历时与我们插入的顺序相同。LinkedHashSet的底层使用LinkedHashMap存储元素。LinkedHashSet是有序的,它是按照插入的顺序排序的。

3.2初始化

/*三种常用的构造方法
public LinkedHashSet(int initialCapacity)
public LinkedHashSet()
public LinkedHashSet(Collection<? extends E> c) 
*/
public static void testLinkedHashSet(){
    LinkedHashSet<Integer>set1= new LinkedHashSet<>();
    LinkedHashSet<Integer>set2 =new LinkedHashSet(4);
    LinkedHashSet<Integer>set4 =new LinkedHashSet(new HashSet<>());
}

3.3常用方法

遍历时保证有序,其余API与HashSet相同

public int size();//获取大小
public boolean isEmpty();//判断是否为空
public boolean contains(Object o);//是否包含此元素

public boolean add(E e);//添加元素
public boolean remove(Object o);//删除元素
public void clear();//清空集合

//遍历时保证有序
Iterator<Integer> it = set.iterator();
while (it.hasNext()){
     Integer n = it.next();
     System.out.println(n);
}
原创文章 14 获赞 10 访问量 585

猜你喜欢

转载自blog.csdn.net/qq_43672466/article/details/104851406