欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java模擬list和map

王梓涵1年前8瀏覽0評論

Java是一種非常流行的編程語言,其各種數(shù)據(jù)結(jié)構(gòu)也是使用廣泛的。其中,List和Map是常用的兩種數(shù)據(jù)結(jié)構(gòu)。在Java中,我們可以使用數(shù)組和LinkedList等來實現(xiàn)List,使用HashMap和TreeMap等來實現(xiàn)Map。接下來,我們將使用Java語言來模擬這兩種數(shù)據(jù)結(jié)構(gòu)。

首先,我們來模擬List。在這里,我們使用數(shù)組來實現(xiàn)。我們定義一個大小為10的數(shù)組和一個指向當(dāng)前元素位置的指針:

int[] array = new int[10];
int pointer = 0;

那么,如何添加元素呢?我們可以使用一個add方法來實現(xiàn):

public void add(int x) {
array[pointer++] = x;
}

這個方法可以將傳入的元素添加到數(shù)組中,并將指針加一。接著,我們可以使用一個get方法來獲取指定位置的元素:

public int get(int index) {
if (index >= 0 && index< pointer) {
return array[index];
}
return -1;
}

這個方法首先判斷傳入的索引是否合法,如果合法,則返回該索引位置的元素,否則返回-1。

接下來,我們來模擬Map。在這里,我們使用數(shù)組來實現(xiàn)。我們定義一個大小為10的數(shù)組,每個元素是一個鏈表,鏈表中存儲了鍵值對:

LinkedList>[] array = new LinkedList[10];
for (int i = 0; i< 10; i++) {
array[i] = new LinkedList<>();
}

然后,我們可以使用一個put方法來添加鍵值對:

public void put(int key, int value) {
int index = key % 10;
for (Pairpair : array[index]) {
if (pair.getKey() == key) {
pair.setValue(value);
return;
}
}
array[index].add(new Pair<>(key, value));
}

這個方法首先計算出鍵的哈希值,然后找到對應(yīng)的鏈表,遍歷鏈表中每個鍵值對,如果找到了相同的鍵,則更新對應(yīng)的值,否則將該鍵值對添加到鏈表的末尾。

最后,我們可以使用一個get方法來獲取對應(yīng)的值:

public int get(int key) {
int index = key % 10;
for (Pairpair : array[index]) {
if (pair.getKey() == key) {
return pair.getValue();
}
}
return -1;
}

這個方法首先計算出鍵的哈希值,然后找到對應(yīng)的鏈表,遍歷鏈表中每個鍵值對,如果找到了相同的鍵,則返回對應(yīng)的值,否則返回-1。