Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions group14/598808350/20170219.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
���� CPU���ڴ棬 Ӳ�̣�ָ��֮��Ĺ�ϵ

http://blog.sina.com.cn/s/blog_986d02cd0102xncn.html

QQ:598808350
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
package org.learning.container;


public class ArrayList {

private Object [] objs = null;
private int index = -1;
public ArrayList(){
objs = new Object[5];
}
public ArrayList(int size){
objs = new Object[size];
}
/**
* ����һ���µ�����
* @param src
* @param src_index
* @param dest
* @param dest_index
* @param length
* @return
*/
private static Object[] copy(Object[] src,int src_index,Object[] dest,int dest_index,int length){
System.arraycopy(src, src_index, dest, dest_index, length);
return dest;
}

public void add(Object obj){
if(this.index == objs.length-1) {
Object[] dest = new Object[objs.length+5];
objs = copy(objs,0,dest,0,objs.length);
}
this.index ++;
objs[this.index] = obj;
}

public void add(int index,Object obj){
if(index-1 > this.index || index < 0){
throw new IndexOutOfBoundsException();
}
Object[] dest = new Object[objs.length+5];
if(index == 0){
dest[index] = obj;
dest =copy(objs,index,dest,index+1,getSize());
objs = dest;
}else if(index == getSize()){
objs[index] = obj;
}else{
dest = copy(objs,0,dest,0,index);//ǰ����
dest[index] = obj; //�м䲿��
dest =copy(objs,index,dest,index+1,getSize()-index);//�󲿷�
objs = dest;
}
this.index++;
}

public Object get(int index){
if(index > this.index || index <0){
throw new IndexOutOfBoundsException();
}
return objs[index];
}

public boolean isEmpty(){
if(objs == null || this.index == -1){
return true;
}
return false;
}

public int getSize(){
return this.index+1;
}

public boolean remove(int index){
if (index <0 || index > objs.length){
throw new IndexOutOfBoundsException();
}
Object[] dest = new Object[this.index];
dest = copy(objs,0,dest,0,index);//ǰ����
dest = copy(objs,index+1,dest,index,this.index-index);//�󲿷�
objs = dest;
this.index --;
return true;
}
public boolean remove(Object obj){
for(int i=0;i<=this.index;i++){
if(obj==null ? get(i)==null : obj.equals(get(i))) {
remove(i); //i �� ��ǰԪ�ص��±�ʶ
return true;
}
}
return false;
}
public static void print(Object obj){
System.out.println(obj);
}

public static void main(String [] args){
ArrayList al = new ArrayList();
/*print(al.isEmpty());
al.add("a1");
print(al.isEmpty());
print(al.getSize());
print(al.get(0));
print(al.get(1));*/
al.add("a0");
al.add("a1");
al.add("a2");
al.add("a3");
al.add("a4");
al.add("a5");

//al.remove(0);
//al.remove(5);
//al.remove(2);
/*boolean flag = al.remove("a7");
print(flag);
for(int i=0;i<al.getSize();i++){
print(al.get(i));
}*/
/*print(al.get(0));
print(al.get(5));
print(al.get(6));*/
//print(al.getSize());
//print(al.get(-1)); ok
//print(al.get(0));
//print(al.get(5));

//print(al.get(6));

/*for(int i=0;i<al.getSize();i++){
print(al.get(i));
}
print("---------------------��������Ϊadd");*/

al.add(0, "a00");
al.add(5, "a6");
for(int i=0;i<10;i++){
print(al.get(i));
}
print("---------------------��������Ϊadd(index,obj)");

/*al.add(6, "a6");
al.add("a7");
for(int i=0;i<al.getSize();i++){
print(al.get(i));
}
print("---------------------��������Ϊadd(index,obj)");*/
/*al.add("a0");
al.add("a1");
al.add("a2");
al.add("a3");
al.add("a4");
al.add("a5");
al.add("a6");
print(al.isEmpty());
print(al.getSize());
print(al.get(0));
print(al.get(5));
//al.add(5,"5.5");

for(int i=0;i<al.getSize();i++){
print("i"+i+":"+(al.get(i)));
}

//print(al.remove("a4"));
print(al.getSize());
print(al.remove(2));
print("ɾ����");
print(al.getSize());
for(int i=0;i<al.getSize();i++){
print("i"+i+":"+(al.get(i)));
}
print("-----------add a7");
al.add("a7");
al.add(2,"a2");*/

/*for(int i=0;i<al.getSize();i++){
print("i"+i+":"+(al.get(i)));
}
print(al.get(6));*/

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
package org.learning.container;

public class LinkedList {

private Node element = new Node(null,null,null);

public LinkedList(){
this.element.next = (this.element.prev = this.element);
}



public Node getElement() {
return element;
}

public void setElement(Node element) {
this.element = element;
}


private int index = 0;







public void add(Object obj){
add(obj,this.element);
}
public Node add(Object obj,Node node){
// ���ڵ�(�ڵ�������obj)���ӵ���ͷ(element)֮ǰ
// �������ڵ����ӵ�˫��������ĩ��
Node childNode = new Node(obj,node,node.prev);
childNode.prev.next = childNode;
childNode.next.prev = childNode;
index += 1;
return childNode;
}

/*public void add(int index,Object obj){
for(int i=0;i<size();i++){
if(i == index){
add(obj);
}
}
}*/

public void addFirst(Object obj){
//add(0,obj);
add(obj,this.element.next);
}

public Object getFirst(){
return element.next.obj;
}

public void addLast(Object obj){
//add(size(),obj);
add(obj,this.element);
}

public Object getLast(){
return element.prev.obj;
}
public Node get(int index){
Node obj = null;
for(int i=0;i<size();i++){
if(i == index) obj = element.next;
}
return obj;
}
public int size(){
return this.index ;
}
public Object remove(Node node){
Object e = node.obj;

node.prev.next = node.next;
node.next.prev = node.prev;

node.prev = node.next = null;
node.obj = null;
index -=1;
return e;
}

public void removeFirst(){
remove(this.element.next);
}
public void removeLast(){
remove(this.element.prev);
}

class Node{
Object obj ; //�������
Node prev ; //�����һ������
Node next ; //�����һ������
public Node(Object obj,Node next,Node prev){
this.obj = obj;
this.next = next;
this.prev = prev;
}
}


public static void main(String [] args){
/*Object [] objs = new Object[3];

Object [] c0 = new Object[2];
c0[0] = "c0";
Object [] c1 = new Object[2];
c1[0] = "c1";
Object [] c2 = new Object[2];
c2[0] = "c2";

c0[1] = c1;
c1[1] = c2;
c2[1] = null;

objs[2] = c2;
objs[1] = c1;
objs[0] = c0;

for(int i=0;i<objs.length;i++){
System.out.println("i="+i);
System.out.println(((Object[])objs[i])[0]);
if((Object[])((Object[])objs[i])[1] == null){
continue;
}
Object[] obj = (Object[])((Object[])objs[i])[1];

System.out.println(obj[0]);
System.out.println(obj[1]);
}*/
LinkedList list = new LinkedList();
list.add("test0");
list.add("test1");
list.add("test2");

list.addFirst("first");
list.addLast("last");

System.out.println(list);
System.out.println("list.getFirst()"+list.getFirst());
System.out.println("list.getLast()"+list.getLast());


for(int i=0;i<list.size();i++){
Node tmp = list.get(i);
print(tmp.obj);
}

System.out.println("----------------------------------------");
java.util.LinkedList linkedList = new java.util.LinkedList();
linkedList.add("object");
linkedList.addFirst("first");
//linkedList.addLast("last");


for(Object obj : linkedList){
print(obj);
}

print("--------------------���Ӻ����--------------------------------------");

print("-----------------ɾ��first��last---------------------------------------");

linkedList.removeFirst();
linkedList.removeLast();
for(Object obj : linkedList){
print(obj);
}


}

public static void print(Object obj){
System.out.println(""+obj);
}
}
Loading