import java.util.Iterator;
创新互联总部坐落于成都市区,致力网站建设服务有成都做网站、网站制作、成都外贸网站建设、网络营销策划、网页设计、网站维护、公众号搭建、微信小程序开发、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!
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();//创建迭代器并以父接口类型返回
}
private class MyIterator implements Iterator{//在内部类中可以不
int index=0;
public boolean hasNext(){
return indexsize;
}
public Object next(){
return arr[index++];
}
public void remove(){
MyArrayList.this.remove(index);//内部类调用外部类的方法
}
}
}
//注释为可替换代码
ArrayListWorker list = new ArrayListWorker();//创建一个List
Worker zhang3 = new Worker("zhang3",18,3000);//分别创建三个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);//创建赵六
list.add(1,zhao6);//将赵六加入List第二的位置
list.remove(wang5);//从List中移除王五
for(int i=0;ilist.size();i++){//循环遍历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并调用work
---------------------------------
public boolean equals(Object obj){
if(!(obj instanceof Worker))
return false;//如果给出的对象不是Worker对象则返回否结果
Worker worker = (Worker)obj;//将给出的对象转换为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创建一个List集合用java创建一个list集合,保存'a b a b c a c b a a b'。
* 然后使用Map集合,key保存对应的字母,value保存对应字母的出现次数。
* @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接口的,实现类有一大堆,常用的有ArrayList(底层是数组)和LinkedList(底层是链表),创建方法是这样的:
ListObject arryList = new ArrayListObject();
ListObject linkedList = new LinkedListObject();
上面用到是多态。
添加是这样的:
arrayList.add(obj);
linkedList.add(obj); // 两个一样,没区别
删除是这样的:
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,因为我姓梁。
希望我的回答能对你有所帮助,荣幸之至。