javaSE入门总结-容器


前言

容器,顾名思义,利用各种数据结构底层(具有不同的特性)来实现盛放数据。
本人在此没有赘述基本概念,仅仅进行了java集合整体分析


一、一眼看穿java容器?

废话少说,上图java容器结构
当然这是个人简化版,简单介绍一下

1.不同实现方式,Array,Linked List,Tree,Hash table
2.Hash table 实现方式无序,Tree实现方式有序,但速度较hash table稍慢
3. Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。

二、须牢记

1.Collections类

java.util.Collections类提供了一些静态方法实现类基于List容器的一些算法。
look look?
void sort(List<T> list) sort对List中元素排序

void shuffle(List<?> list) 对List容器中对象随机排序

void reverse(List<?> list)对List容器中对象逆序排列

void fill(List<? super T> list,T obj)用一个特定容器重写整个List容器

int binarySearch( list, key)对于顺序的list,二分法查找特定对象

void copy(List<? super T> dest, List<? extends T> src)将src List内容复制到dest list中

2.Iterator迭代器

Iterator“三剑客”上场:

boolean hasNext()
E next()
default void remove()

上图(图示函数作用)
迭代器
实例(引于菜鸟)

// 引入 ArrayList 和 Iterator 类
import java.util.ArrayList;
import java.util.Iterator;

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<Integer> numbers = new ArrayList<Integer>();
        numbers.add(12);
        numbers.add(8);
        numbers.add(2);
        numbers.add(23);
        //获取迭代器
        Iterator<Integer> it = numbers.iterator();
        //循环获取
        while(it.hasNext()) {
            Integer i = it.next();
            if(i < 10) {
                it.remove();  // 删除小于 10 的元素
            }
        }
        System.out.println(numbers);
    }
}

3.ArrayList(List有索引)

实现类,新手目的学会使用
容器基本操作crud

  1. 添加add()
  2. 访问 get()
  3. 修改 set()
  4. 删除 remove()
  5. 计算数量 size()
  6. 遍历 for() for-each

4.LinkedList

与 ArrayList 相比,LinkedList 的增加和删除对操作效率更高,而查找和修改的操作效率较低(链表实现,自然,不懂得小伙伴复习下数据结构,另外,java中使用双向链表)

  1. addFirst() 头部添加元素
  2. addLast() 在尾部添加元素
  3. add()依次添加
  4. removeFirst() removeLast() remove()(顾名思义)
  5. getFirst() getLast() get()获取
  6. size() 计算大小
  7. for-each for遍历

5. HashSet

*HashSet 允许有 null 值

  1. add()添加
  2. contains() 查找判断元素是否存在于集合当中
  3. remove() 删除
  4. clear()清空
  5. size() 数量
  6. for-each遍历

6.HashMap(key-value)

//依旧是crud

  1. put(key,value)添加(key-value)
  2. get(key) 获取
  3. remove(key) 删除
  4. clear() 清空
  5. size() 计算大小
  6. for-each 迭代 ,如果你只想获取 key,可以使用 keySet() 方法,然后可以通过 get(key) 获取对应的 value,如果你只想获取 value,可以使用 values() 方法
//sites 一个set对象
for (Integer i : Sites.keySet()) {
            System.out.println("key: " + i + " value: " + Sites.get(i));
        }
        // 返回所有 value 值
        for(String value: Sites.values()) {
          // 输出每一个value
          System.out.print(value + ", ");
        }

7.Auto_boxing/unBoxing

import java.util.*;
public class TestMap2 {
  public static void main(String args[]) {
    Map<String, Integer> m1 = new HashMap<String , Integer>(); 
    m1.put("one", 1);
    m1.put("two", 2);
    m1.put("three", 3);

    System.out.println(m1.size());
    System.out.println(m1.containsKey("one"));

    if(m1.containsKey("two")) {
      //int i = ((Integer)m1.get("two")).intValue();
      int i = m1.get("two");
      System.out.println(i);
    }

  }
}

方法返回是Object,我们需要强制类型转换,但是jdk已经帮我们实现
马士兵


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值