import java.util.ArrayList;
import java.util.Comparator;public class SortList<E> {
private static final long serialVersionUID = -4229834399379130390L;
public static final int DESC = 0;
public static final int ASC = 1; private ArrayList<E> elements;
private Comparator<E> comparator;
private int sortType = ASC; public SortList(Comparator<E> comparator) {
this(comparator, ASC);
} public SortList(Comparator<E> comparator, int sortType) {
this.comparator = comparator;
elements = new ArrayList<E>();
if (sortType == DESC)
this.sortType = DESC;
} public void add(E e) {
if (elements.size() == 0) {
elements.add(e);
return;
} for (int i = 0; i < elements.size(); i++) {
E e1 = elements.get(i);
if (comparator.compare(e1, e) > 0) {
if (sortType == ASC) {
elements.add(i, e);
break;
} else {
if (i == elements.size() - 1) {
elements.add(i + 1, e);
break;
}
continue;
}
} else {
if (sortType == ASC) {
if (i == elements.size() - 1) {
elements.add(i + 1, e);
break;
}
continue;
} else {
elements.add(i, e);
break;
}
}
}
} public ArrayList<E> getElements() {
return elements;
}}
测试类:import java.util.Comparator;public class TestClass { /**
* @param args
*/
public static void main(String[] args) {
SortList<Integer> list = new SortList<Integer>(new Comparator<Integer>(){ public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
});
list.add(10);
list.add(1);
list.add(99);
list.add(77);
list.add(102);
list.add(104);
for(int i = 0; i < list.getElements().size(); i++)
{
System.out.println(list.getElements().get(i));
} }}
import java.util.Comparator;public class SortList<E> {
private static final long serialVersionUID = -4229834399379130390L;
public static final int DESC = 0;
public static final int ASC = 1; private ArrayList<E> elements;
private Comparator<E> comparator;
private int sortType = ASC; public SortList(Comparator<E> comparator) {
this(comparator, ASC);
} public SortList(Comparator<E> comparator, int sortType) {
this.comparator = comparator;
elements = new ArrayList<E>();
if (sortType == DESC)
this.sortType = DESC;
} public void add(E e) {
if (elements.size() == 0) {
elements.add(e);
return;
} for (int i = 0; i < elements.size(); i++) {
E e1 = elements.get(i);
if (comparator.compare(e1, e) > 0) {
if (sortType == ASC) {
elements.add(i, e);
break;
} else {
if (i == elements.size() - 1) {
elements.add(i + 1, e);
break;
}
continue;
}
} else {
if (sortType == ASC) {
if (i == elements.size() - 1) {
elements.add(i + 1, e);
break;
}
continue;
} else {
elements.add(i, e);
break;
}
}
}
} public ArrayList<E> getElements() {
return elements;
}}
测试类:import java.util.Comparator;public class TestClass { /**
* @param args
*/
public static void main(String[] args) {
SortList<Integer> list = new SortList<Integer>(new Comparator<Integer>(){ public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
});
list.add(10);
list.add(1);
list.add(99);
list.add(77);
list.add(102);
list.add(104);
for(int i = 0; i < list.getElements().size(); i++)
{
System.out.println(list.getElements().get(i));
} }}
import java.util.ArrayList;
import java.util.Comparator;public class SortList<E> {
/**
*
*/
private static final long serialVersionUID = -4229834399379130390L;
public static final int DESC = 0;
public static final int ASC = 1; private ArrayList<E> elements;
private Comparator<E> comparator;
private int sortType = ASC; public SortList(Comparator<E> comparator) {
this(comparator, ASC);
} public SortList(Comparator<E> comparator, int sortType) {
this.comparator = comparator;
elements = new ArrayList<E>();
if (sortType == DESC)
this.sortType = DESC;
} public void add(E e) {
if (elements.size() == 0) {
elements.add(e);
return;
} for (int i = 0; i < elements.size(); i++) {
E e1 = elements.get(i);
if (comparator.compare(e1, e) > 0) {
if (sortType == ASC) {
elements.add(i, e);
break;
} else {
if (i == elements.size() - 1) {
elements.add(i + 1, e);
break;
}
continue;
}
} else {
if (sortType == ASC) {
if (i == elements.size() - 1) {
elements.add(i + 1, e);
break;
}
continue;
} else {
elements.add(i, e);
break;
}
}
}
} public ArrayList<E> getElements() {
return elements;
}}
import java.util.Comparator;public class TestClass { /**
* @param args
*/
public static void main(String[] args) {
SortList<Integer> list = new SortList<Integer>(new Comparator<Integer>(){ public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
});
list.add(10);
list.add(1);
list.add(99);
list.add(77);
list.add(102);
list.add(104);
for(int i = 0; i < list.getElements().size(); i++)
{
System.out.println(list.getElements().get(i));
} }}
现在可以实现排序了,就是想把他的算法改变一下