import java.util.Iterator;
創(chuàng)新互聯(lián)總部坐落于成都市區(qū),致力網(wǎng)站建設服務有成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設、網(wǎng)絡營銷策劃、網(wǎng)頁設計、網(wǎng)站維護、公眾號搭建、微信小程序開發(fā)、軟件開發(fā)等為企業(yè)提供一整套的信息化建設解決方案。創(chuàng)造真正意義上的網(wǎng)站建設,為互聯(lián)網(wǎng)品牌在互動行銷領域創(chuàng)造價值而不懈努力!
public class MyArrayList {
Object[] arr;
int size=0;
public MyArrayList(){
this(10);
}
public MyArrayList(int R){
arr=new Object[R];
}
public int size() {
return size;
}
public void add(Object obj){
if(arr.length=size+1){
arr[size]=obj;
size++;
}else{
int i=arr.length*3/2+1;
Object[] a2=new Object[i];
System.arraycopy(arr,0,a2,0, size);
a2[size]=obj;
size++;
arr=a2;
}
// if(arr.lengthsize+1){
// Object[] a=new Object[size*3/2+1];
// System.arraycopy(arr, 0, a, 0, size);
// arr=a;
// }
// arr[size]=obj;
// size++;
//}
}
public Object get(int i){
if(i0||i=size){
throw new ArrayIndexOutOfBoundsException(i);
}else{
return arr[i];
}
}
public Object set(int i,Object obj){
if(i0||i=size){
throw new ArrayIndexOutOfBoundsException(i);
}else{
size++;
Object o=arr[i];
for(int j=size-1;ji;j--){
arr[j]=arr[j-1];
}
arr[i]=obj;
return o;
}
}
public Object remove(int i){
if(i0||i=size){
throw new ArrayIndexOutOfBoundsException(i);
}else{
Object o=arr[i];
for(int j=i;jsize-1;j++){
arr[j]=arr[j+1];
}
size--;
// System.arraycopy(arr, i+1, arr, i,size-(i+1));
// arr[--size]=null;
return o;
}
}
public Iterator iterator(){
return new MyIterator();//創(chuàng)建迭代器并以父接口類型返回
}
private class MyIterator implements Iterator{//在內(nèi)部類中可以不
int index=0;
public boolean hasNext(){
return indexsize;
}
public Object next(){
return arr[index++];
}
public void remove(){
MyArrayList.this.remove(index);//內(nèi)部類調(diào)用外部類的方法
}
}
}
//注釋為可替換代碼
ArrayListWorker list = new ArrayListWorker();//創(chuàng)建一個List
Worker zhang3 = new Worker("zhang3",18,3000);//分別創(chuàng)建三個Worker
Worker li4 = new Worker("li4",25,3500);
Worker wang5 = new Worker("wang5",22,3200);
list.add(zhang3);//分別將三個Worker加入List
list.add(li4);
list.add(wang5);
Worker zhao6 = new Worker("zhao6",24,3300);//創(chuàng)建趙六
list.add(1,zhao6);//將趙六加入List第二的位置
list.remove(wang5);//從List中移除王五
for(int i=0;ilist.size();i++){//循環(huán)遍歷List
Worker w = list.get(i);//獲取第i位的工人信息
System.out.println(w.getName()+";"+w.getAge()+";"+w.getSalary());//打印該工人信息
}
IteratorWorker iter = list.iterator();//獲取List迭代器
while(iter.hasNext())
iter.next().work();//迭代遍歷List并調(diào)用work
---------------------------------
public boolean equals(Object obj){
if(!(obj instanceof Worker))
return false;//如果給出的對象不是Worker對象則返回否結(jié)果
Worker worker = (Worker)obj;//將給出的對象轉(zhuǎn)換為Worker對象
if(!worker.getName().equals(name))
return false;//如果給出的對象與本對象的name不一致則返回否
if(worker.getSalary()!=salary)
return false;//salary不一致則返回否
if(worker.getAge()!=age)
return false;//age不一致則返回否
return true;//返回是
}
package test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 用java創(chuàng)建一個List集合用java創(chuàng)建一個list集合,保存'a b a b c a c b a a b'。
* 然后使用Map集合,key保存對應的字母,value保存對應字母的出現(xiàn)次數(shù)。
* @author ASUS
*
*/
public class Test15 {
public static void main(String[] args) {
ListCharacter list = new ArrayListCharacter();
list.add('a');
list.add('b');
list.add('a');
list.add('b');
list.add('c');
list.add('a');
list.add('c');
list.add('b');
list.add('a');
list.add('a');
list.add('b');
MapCharacter,Integer map = new HashMapCharacter,Integer();
for(Character ch : list){
if(map.containsKey(ch)){
int num = map.get(ch);
num+=1;
map.put(ch, num);
}else{
map.put(ch, 1);
}
}
System.out.println(map);
}
}
Java中是有java.util.List接口的,實現(xiàn)類有一大堆,常用的有ArrayList(底層是數(shù)組)和LinkedList(底層是鏈表),創(chuàng)建方法是這樣的:
ListObject?arryList?=?new?ArrayListObject();
ListObject?linkedList?=?new?LinkedListObject();
上面用到是多態(tài)。
添加是這樣的:
arrayList.add(obj);?
linkedList.add(obj);?//?兩個一樣,沒區(qū)別
刪除是這樣的:
arrayList.remove(0);?//?0?是下標
linkedList.remove(0);
如果只是增加和刪除的話,建議使用LinkedList,效率高一些。
如果非要自己寫一個類的話,會麻煩很多。
public?class?ListL{
private?LinkedListL?list?=?new?LinkedListL();?
public?void?add(L?l){
list.addLast(l);????
}
public?void?remove(int?a){
//?方法
list.remove(a);
}
}
其中L表示范型, 別問為什么要用L,因為我姓梁。
希望我的回答能對你有所幫助,榮幸之至。