1. 程式人生 > >Java知識彌補-Android開發

Java知識彌補-Android開發

dal dup lastindex 數據結構 orm android課程 不包含 回憶 包括

目錄

  • 數據結構
    • 1. Map-HashMap
    • 2. StringBuilder
    • 3. List-ArrayList
    • 4. Vector
    • 5. Stack
    • 6. Set

由於這學期開了android課程,好久沒有接觸的java已經徹底生疏了,常用的數據結構以及包都已經不大會用了,所以寫一個知識彌補的博客,以便以後回憶。

Java API

數據結構

1. Map-HashMap

import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.Collection;

Map<Integer,String> m1=new HashMap<Integer,String>();
for(int i = 0 ; i < 10 ; i++){
    m1.put(i,String.format("test%d",i));
}
System.out.println(m1);

Set<Map.Entry<Integer,String>>set=m1.entrySet();

for(Map.Entry<Integer,String> entry:set){
    System.out.println(entry.getKey() + ":" + entry.getValue());
}

//查找某一個key對應的value
m1.get(key);
//判斷是否存在
m1.containsKey(4);
m2.containsValue("test");

Set<Integer>keys=m1.keySet();
Collection<String> values = m1.values();

//刪除key對應的一對鍵值
m1.remove(key);

2. StringBuilder

//主要操作是append 和 insert方法
StringBuilder<String> sb = new StringBuilder<String>();
sb.append("test");
int sb.capacity();//返回當前容量
char sb.charAt(int index);//得到對應的char值
int sb.codePointAt(int index);//返回索引處字符
StringBuilder sb.deleteCharAt(int index); //刪除某處的字符
//通常是start和end是與sb.length()相關的
StringBuilder sb.delete(int start,int end); 
//查找指定字符串
int sb.indexOf(String str);
//插入
StringBuilder sb.insert(int offset,String str);
StringBuilder sb.reverse();//翻轉
StringBuilder sb.replace(int start,int end,String str);//替換操作
void trimToSize();//嘗試減少字符序列存儲空間
String sb.toString();//返回字符串表示形式

3. List-ArrayList

List:大小可變數組

boolean addAll (Collection<? extends E> c) 按照指定 collection 的叠代器所返回的元素順序,將該 collection 中的所有元素添加到此列表的尾部。
boolean addAll (int index, Collection<? extends E> c) 從指定的位置開始,將指定 collection 中的所有元素插入到此列表中。
void clear () 移除此列表中的所有元素。
Object clone () 返回此 ArrayList
實例的淺表副本。
boolean contains (Object o) 如果此列表中包含指定的元素,則返回 true
void ensureCapacity (int minCapacity) 如有必要,增加此 ArrayList 實例的容量,以確保它至少能夠容納最小容量參數所指定的元素數。
E get (int index) 返回此列表中指定位置上的元素。
int indexOf (Object o) 返回此列表中首次出現的指定元素的索引,或如果此列表不包含元素,則返回 -1。
boolean isEmpty () 如果此列表中沒有元素,則返回 true
int lastIndexOf (Object o) 返回此列表中最後一次出現的指定元素的索引,或如果此列表不包含索引,則返回 -1。
E remove (int index) 移除此列表中指定位置上的元素。
boolean remove (Object o) 移除此列表中首次出現的指定元素(如果存在)。
protected void removeRange (int fromIndex, int toIndex) 移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之間的所有元素。
E set (int index, E element) 用指定的元素替代此列表中指定位置上的元素。
int size () 返回此列表中的元素數。
Object[] toArray () 按適當順序(從第一個到最後一個元素)返回包含此列表中所有元素的數組。
<T> T[] toArray (T[] a) 按適當順序(從第一個到最後一個元素)返回包含此列表中所有元素的數組;返回數組的運行時類型是指定數組的運行時類型。
void trimToSize () 將此 ArrayList 實例的容量調整為列表的當前大小。

4. Vector

import java.util.*;
import java.util.List;
import java.util.Vector;

Vector<String> vec = new Vector<String>();
String[] arr1={"a","b","c","d"};
Vector<String> vec2 = new Vector<String>(Arrays.asList(arr1));


    
//如何遍歷
Enumeration<String> iter = vec.elements();
while(iter.hasMoreElements()){
    System.out.println(iter.nextElement());
}

//其他一些屬性:
vec.capacity();    //vector容量
vec.size();        //vector大小
vec.isEmpty();     //是否為空
vec.setSize(15);   //設置size
vec.trimToSize();  //壓縮到Size
vec.hashCode();  //哈希碼
vec.equals(vec2); //相等

//增刪改查
//增
vec.add(0,"addthing");
i=0
vec.add(String.format("%d",i))//從尾部添加String
vec.addAll(3,vec2)//從第3個元素,添加另外一個vector(如果沒有3那就從尾部插入)    
vec.add(8,"test")//在第8個位置添加“test”    
vec.insertElementAt("test",3)//從第三個位置開始插入test
    
//刪
vec.remove("deletething"); //刪字符串
vec.removeElementAt(2); //刪第2個位置上的字符
vec.removeAllElements();//全部刪掉 = clear()

//改
vec.set(0,"start");//設置第0位置為start字符串

//查
//取某一位數據
String str=vec.get(3);//vec的第三個位置的內容
String str=vec.firstElement();
String str=vec.lastElement();

5. Stack

Stack繼承自Vector,所以繼承了全部的方法,下面介紹特有的方法:

Stack<Integer> s = new Stack<Integer>();
for(int i = 0 ; i < 10 ; i++){
    s.push(i);
}
//壓棧
s.push(10);
//取頂
s.peek();
//彈出頂
Integer top = s.pop();
//查找
s.search(3); //找不到返回-1,找到則返回從後往前數的第幾位(從棧頂開始數)

6. Set

import java.util.ArrayList;
import java.util.Set;
public static void setDemo() {
    int[] nums = new int[] {1, 4, 8, 3, 22, 34, 4, 6, 0, 33, 5, 6, 3, 9};
    List list = new ArrayList();
    for (int i:nums) {
        list.add(i);
    }
    System.out.println(list);
    //[1, 4, 8, 3, 22, 34, 4, 6, 0, 33, 5, 6, 3, 9]
    Set<Integer> set = new HashSet<Integer>();
    //remove duplicate elements
    set.addAll(list);
    System.out.println(set);
    //[0, 1, 33, 34, 3, 4, 5, 22, 6, 8, 9]
    set.add(4);   //4 is a duplicate element, so this will not take effect
    System.out.println(set);
    //[0, 1, 33, 34, 3, 4, 5, 22, 6, 8, 9]  
    System.out.println(set.size());    //11
}

Java知識彌補-Android開發