盒子
盒子
文章目录
  1. 数组
  2. List
  3. set
  4. Map
  5. 模式
    1. 单例模式

数据结构

数组

for(int i: new int[] {1, 2, 3})
System.out.println(i);
// 截断 / 复制
int[] ids = { 1, 2, 3, 4, 5 };
System.arraycopy(ids, 0, ids, 3, 2); // 原数组, 下标, 目标数组, 下标, 复制数据长度

List

List<int> list = new ArrayList<int>(
Arrays.asList(1, 2, 3));

ArrayList<Object> list = new ArrayList<Object>(){{add(1); add("2");}};


for (Object v : list)
System.out.println(v);

set

// 遍历
for(Integer i: new HashSet<Integer>() {{add(1); add(2);}})
System.out.println(i);

// 自定义排序
Set<String> set = new TreeSet<String>(new MyComparator());
class MyComparator implements Comparator<String> {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);// 降序排列
}
}

Map

// HashMap
// 定义
HashMap<String, String> mHashMap = new HashMap<>();
// 初始化赋值
HashMap<String, String> mHashMap = new HashMap<String, String>() {{put("a", "1");}};
// 添加
mHashMap.put("a", "b");
// 查找
mHashMap.containsKey("a");
// 获取
mHashMap.get("a");
// 遍历
for (Entry<String, String> entry: map.entrySet()) {
entry.getKey();
entry.getValue();
// 这种方式不适用于删除元素
}
for (String key : map.keySet()) {
// key process
}

// 安全删除
for (Iterator<Map.entry<String, String>> it = myHashMap.entrySet().iterator; it.hasNext();){
Map.Entry<K, V> item = it.next();
K key = item.getKey();
V val = item.getValue();
//可以安全删除元素:"it.remove();"
//Iterator方法通用于其他容器
}
// int做主键的map: 基于二分查找, 适用于主键数量较少情况

import android.util.SparseIntArray; // int->int

// 支持基于index的操作, 也支持基于key的操作
SparseArray<String> sparseArray = new SparseArray<String>(); // int->string
//向sparseArray存入元素value,key为index
sparseArray.put(key, value);
//这个方法本质也是利用put(key, value)去存入数据
sparseArray.append(key, value);
//查找key所在的位置,如果不存在,则返回-1
sparseArray.indexOfKey(key);
//查找value所在的位置,如果不存在,则返回-1
sparseArray.indexOfValue(value);
//更新某个key的值
sparseArray.setValueAt(index, value);
//获取index所对应的值,没有则返回null
sparseArray.get(index);
//获取index所对应的值,没有则返回自定义的默认值"default-value"
sparseArray.get(index,"default-value");
//删除index对应的元素
sparseArray.delete(index);
//移除,本质也是调用delete(int)方法
sparseArray.remove(index);
//清空所有数据
sparseArray.clear();

模式

单例模式

private static MyClass instance;
public static MyClass getInstance() {
if (null == instance) {
synchronized (MyClass.class) {
if (null == instance) {
instance = new MyClass();
}
}
}
return instance;
}
支持一下
扫一扫,支持一下
  • 微信扫一扫
  • 支付宝扫一扫