生活随笔
收集整理的這篇文章主要介紹了
2021-9-下旬 数据结构-线性表-动态数组-java代码实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
信管的數(shù)據(jù)結(jié)構(gòu)講的太水了,遂重學(xué)(看的網(wǎng)課:戀上數(shù)據(jù)結(jié)構(gòu)與算法,講的very good),為算法學(xué)習(xí)打基礎(chǔ)(都大三了還在打基礎(chǔ)),順便在leetcode上跟進(jìn)一些相關(guān)的題,記錄在這里,這里最方便復(fù)習(xí)
另一方面發(fā)現(xiàn)未來的考試題,除了算法題之外,比較基礎(chǔ)的題(對基本數(shù)據(jù)結(jié)構(gòu)的各種操作),也占了可觀的一部分
最后,順便新入門了java語言,相比C++,java在寫算法和數(shù)據(jù)結(jié)構(gòu)這方面還是方便太多了,比如自動回收機(jī)制,但是另一方面java對基礎(chǔ)數(shù)據(jù)類型是值傳遞,而對其他數(shù)據(jù)類型就都是地址傳遞,而且指針在代碼里體現(xiàn)的也很不明顯,反倒讓我容易混淆,但是熟悉了之后發(fā)現(xiàn)對于一點沒學(xué)過指針的人,java真是太友好了(于是很快就把C里關(guān)于指針的操作忘光了,而且后面發(fā)現(xiàn)考試填代碼塊都是用C,于是又換回C++實現(xiàn)了)
public class ArrayListIntZH {private int[] elements
;private int size
;private static final int DEFAULT_CAPACITY
= 10;private static final int ELEMENT_NOT_FOUND
= -1;public ArrayListIntZH(int capacity
){if (capacity
<10){capacity
= 10;}elements
= new int[capacity
];}public ArrayListIntZH(){elements
= new int[DEFAULT_CAPACITY
];}public int size(){return size
;}public void clear(){size
= 0;}public void add(int element
){add(size
,element
);}private void ifNeedEnLarge(int needCapacity
){int oldcapacity
= elements
.length
;if (needCapacity
<=oldcapacity
){return;}else{int newcapacity
= oldcapacity
*2;int[] newElements
= new int[newcapacity
];for (int i
=0;i
<size
;i
++){newElements
[i
]=elements
[i
];}elements
= newElements
;System.out
.println("enLarge Success"+" newCapacity = "+newcapacity
);}}public void add(int index
, int element
){if(index
<0||index
>size
){throw new IndexOutOfBoundsException("Index="+index
+"but,size="+size
);}ifNeedEnLarge(size
+1);for (int i
= size
-1;i
>=index
;i
--){elements
[i
+1]=elements
[i
];}elements
[index
]=element
;size
++;}public void remove(int index
){if(index
<0||index
>size
-1){throw new IndexOutOfBoundsException("Index="+index
+"but,size="+size
);}for (int i
= index
+ 1; i
<size
;i
++ ){elements
[i
-1]=elements
[i
];}size
--;}public boolean isEmpty(){return size
==0;}public boolean contains(int element
){for (int i
=0;i
<size
-1;i
++){if (elements
[i
] == element
){return true;}}return false;}public int get(int index
){if(index
<0||index
>size
-1){throw new IndexOutOfBoundsException("Index="+index
+"but,size="+size
);}return elements
[index
];}public void set(int index
,int element
){if(index
<0||index
>size
-1){throw new IndexOutOfBoundsException("Index="+index
+"but,size="+size
);}elements
[index
] = element
;}public int indexOf(int element
){for (int i
= 0; i
<size
-1;i
++){if (elements
[i
]==element
){return i
;}}return ELEMENT_NOT_FOUND
;}public String arrayPrint(){StringBuilder string
= new StringBuilder();string
.append("size = ").append(size
).append(" ").append("[");for (int i
= 0; i
<size
-1; i
++ ){if (i
!=size
-1) {string
.append(elements
[i
]).append(",");}}string
.append(elements
[size
-1]).append("]");return string
.toString();}}
總結(jié)
以上是生活随笔為你收集整理的2021-9-下旬 数据结构-线性表-动态数组-java代码实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。