List常见子类有ArrayList
、Vector
、LinkedList
。
addElement
(E obj)elementAt
(int index) 按下标获取元素,相当于get()elements()
获取所有,相当于iterator()addFirst()
addLast()
removeFirst()
removeLast()
getFirst()
getLast()
public class ListDemo2 {
public static void main(String[] args) {
// 创建ArrayList集合对象
ArrayList array = new ArrayList();
// 添加元素
array.add(new Student("武松", 30));
array.add(new Student("鲁智深", 40));
// 遍历
Iterator it = array.iterator();
while (it.hasNext()) {
Student s = (Student) it.next();
System.out.println(s.getName() + "---" + s.getAge());
}
System.out.println("------------------");
// 创建Vector集合对象
Vector v = new Vector();
// 添加功能
v.addElement("hello");
v.addElement("world");
// 遍历
for (int x = 0; x < v.size(); x++) {
String s = (String) v.elementAt(x);
System.out.println(s);
}
Enumeration en = v.elements(); // 返回的是实现类的对象
while (en.hasMoreElements()) {
String s = (String) en.nextElement();
System.out.println(s);
}
System.out.println("------------------");
// 创建LinkedList集合对象
LinkedList link = new LinkedList();
// 添加元素
link.add("hello");
link.add("world");
// public void addFirst(Object e)
link.addFirst("javaee");
// public void addLast(Object e)
link.addLast("android");
System.out.println("link:" + link);
// public Object getFirst()
System.out.println("getFirst:" + link.getFirst());
// public Obejct getLast()
System.out.println("getLast:" + link.getLast());
// public Object removeFirst()
System.out.println("removeFirst:" + link.removeFirst());
// public Object removeLast()
System.out.println("removeLast:" + link.removeLast());
// 输出对象名
System.out.println("link:" + link);
}
}
输出:
武松---30
鲁智深---40
------------------
hello
world
hello
world
------------------
link:[javaee, hello, world, android]
getFirst:javaee
getLast:android
removeFirst:javaee
removeLast:android
link:[hello, world]
需求1:ArrayList去除集合中字符串的重复值。
public class ArrayListDemo {
public static void main(String[] args) {
// 创建集合对象
ArrayList array = new ArrayList();
// 添加多个字符串元素(包含内容相同的)
array.add("hello");
array.add("world");
array.add("java");
array.add("world");
array.add("java");
array.add("world");
array.add("world");
array.add("world");
array.add("java");
array.add("world");
System.out.println("原始集合"+ array);
// 创建新集合
ArrayList newArray = new ArrayList();
// 遍历旧集合,获取得到每一个元素
Iterator it = array.iterator();
while (it.hasNext()) {
String s = (String) it.next();
// 拿这个元素到新集合去找,看有没有
if (!newArray.contains(s)) {
newArray.add(s);
}
}
System.out.println("新集合"+ newArray);
}
}
输出:
原始集合[hello, world, java, world, java, world, world, world, java, world]
新集合[hello, world, java]
思路:1、遍历旧集合,获取得到每一个元素,拿这个元素到新集合去找,看有没有。2、有,忽略;没有,就添加到新集合。
需求2:1、ArrayList去除集合中字符串的重复值。2、但是不能创建新的集合,就在以前的集合上做。
思路:由选择排序思想引入,拿0索引的依次和后面的比较,有就把后的干掉。同理,依次拿1索引…
public class ArrayListDemo {
public static void main(String[] args) {
// 创建集合对象
ArrayList array = new ArrayList();
// 添加多个字符串元素(包含内容相同的)
array.add("hello");
array.add("world");
array.add("java");
array.add("world");
array.add("java");
array.add("world");
array.add("world");
array.add("world");
array.add("java");
array.add("world");
System.out.println("修改前集合"+ array);
for (int x = 0; x < array.size() - 1; x++) {
for (int y = x + 1; y < array.size(); y++) {
if (array.get(x).equals(array.get(y))) {
array.remove(y);
y--;
}
}
}
System.out.println("修改后集合"+ array);
}
}
输出:
修改前集合[hello, world, java, world, java, world, world, world, java, world]
修改后集合[hello, world, java]
注意:remove()执行后,后面的元素都会依次补充上来。 故需要y–
public class ArrayListDemo {
public static void main(String[] args) {
// 创建集合对象
ArrayList array = new ArrayList();
// 添加多个字符串元素(包含内容相同的)
array.add("hello");
array.add("world");
array.add("java");
array.add("spring");
for (int i=0; i < array.size(); i++){
System.out.println("下标[" + i + "]=" + array.get(i));
}
System.out.println("---------------------");
array.remove(1);
for (int i=0; i < array.size(); i++){
System.out.println("下标[" + i + "]=" + array.get(i));
}
}
}
输出:
下标[0]=hello
下标[1]=world
下标[2]=java
下标[3]=spring
---------------------
下标[0]=hello
下标[1]=java
下标[2]=spring
删除下标 1后,后续元素下标均减一。
https://blog.csdn.net/basycia/article/details/51840713