java数据存储常用数据结构的实现

本文深入探讨Java中各种数据存储结构的特点与应用,包括队列(先进先出)、栈(先进后出)、键值对存储(HashMap与TreeMap)及集合(Set)。通过具体实例,解析如何选择合适的数据结构以提升系统性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java数据存储结构有好几种方式,如 先进先出、先进后出、键值、集合等,使用正确的数据结构可以让系统性能得到很高的提升。

1.先进先出就是平时说的队,在Java中具体的实现可以使用 双向链表LinkedList

具体实现代码:

public static void main(String[] args) {
    LinkedList<Integer> linkedList = new LinkedList<>();
    linkedList.add(5);
    linkedList.add(3);
    linkedList.add(7);
    linkedList.add(9);
    linkedList.add(0);
    log.info("先进先出==="+linkedList.removeFirst());
}

2.先进后出就是通常说的栈stack,在Java中具体的实现可以使用 双向链表LinkedList

具体实现代码:

public static void main(String[] args) {
    LinkedList<Integer> linkedList = new LinkedList<>();
    linkedList.add(5);
    linkedList.add(3);
    linkedList.add(7);
    linkedList.add(9);
    linkedList.add(0);
    log.info("先进先出==="+linkedList.removeLast());
}

 

3.键值对数据怎样存储,map有两个子类,hashMap和treeMap,treeMap会对key排序,而hashMap的速度较快,所以如果你需要排序,用tree。只是存进去拿出来,用hash就可以。

具体示例代码:

 public static void main(String[] args) {

     hashMap();


     treeMap();

 }

public static void hashMap(){

    Map<String,Integer> map = new HashMap<>();
    map.put("English", 80);
    map.put("Math", 90);
    map.put("Compute", 100);
    log.info(String.valueOf(map.keySet()));
    log.info(String.valueOf(map.values()));
    log.info( map.get("English")+"");

    //遍历方式
    for(String key :map.keySet()){
        log.info(map.get(key)+"");
    }

    for(Integer i :map.values()){
        log.info(i+"");
    }



}

 public static  void treeMap(){

     Map <String, Integer> map = new TreeMap<String, Integer>();
     map.put("English", 80);
     map.put("Math", 90);
     map.put("Compute", 100);

     log.info(String.valueOf(map));


 }

4.set集合,set包括了treeset,hashset两个子类,set集合这个数据结构是排重有序的

 具体示例代码:

public static void main(String[] args) {
    setDemo();
}

public static void setDemo(){
    Set<String> set = new TreeSet<>();
    set.add("b");
    set.add("a");
    set.add("e");
    set.add("t");
    set.add("8888");
    set.add("8888");

    log.info(set.toString());
}

输出结果:[8888, a, b, e, t]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值