一、List接口中的常用方法
1. 添加方法
List list = new ArrayList();
list .add("a" );
list .add("b" );
list .add("c" );
list .add("d" );
添加角标插入对应的元素
list .add(3 ,"x" );
System.out.print (list )----[a,b,c,x,d];
2. 通过get方法进行遍历
Object object = list .get(0 );
System.out.println(object);----0
for (int i= 0 ;i<list <size();i++){
Object object2 = list .get(i);
System.out.print (object2);---abcd
}
3. set方法,按指定角标替换填入的元素
所替换的角标不要越界
list .set(0 ,"c" );
System.out.prrintln(list );----[c,b,c,d];
4. 删除,根据角标删除,返回的是被删除的元素
Object remove = list .remove(3 );
System.out.println(remove);------d
System.out.println(list );[a,b,c]
5. 删除时要注意,是按角标还是按元素删除的
List list = new ArrayList();
list .add(111 );
list .add(222 );
list .add(333 );
int indexOf = list .indexOf(111 );
list .remove(indexOf);
System.out.println(list );---[222 ,333 ]
list .remove(111 );
System.out.println(list );---报错数组越界
要想按元素删除,需要手动删除(就是手动进行装箱)
Object object = list .remove(Integer.valueOf(111 ));
System.out.println(list );----[222 ,333 ];
6. 发生修改异常
List list = new ArrayList();
list .add("a" );
list .add("b" );
list .add("c" );
list .add("d" );
Iterator iterator = list iterator();
while (iterator.hasNext()){
Object next = iterator.next();
if (next.equals("b" )){
list .add("on" );
}
}
System.out.println(list )---报错,修改异常
}
7. 解决上面的并发修改异常
Lsit list = new ArrayList();
list .add("a" );
list .add("b" );
list .add("c" )
list .add("d" );
ListIterator listIterator = list .listIterator();
while (listIterator.hasNext()){
Object object = listIterator.next();
if (next.equals("b" ){
listIterator.add("on" );
}
}
System.out.println(list );--[a,b,c,d,on]
8. 利用list 中的特有迭代器,逆向遍历集合
List list = new ArrayList();
list .add("a" );
list .add("b" );
list .add("c" );
list .add("d" );
ListIterator listIterator = list .listIterator();
while (listIteratro.hasNext()){
System.out.println(listIterator.next());
---[a,b,c,d]
}
while (listIterator.hasPrevious()){
System.out.println(listInterator.previous());---[d,c,b,a]
}
}
二、Vecotr实现类
/*
*Vector 1.2 (使用数组来实现的,已经被ArrayList代替)
创建一个Vector集合,迭代遍历
/*
Vector vector = new Vector();
vector.addElement("a" );
vector.addElement("b" );
vector.addElement("c" );
vector.addElement("d" );
Enumeration elements = vector.elements();
while (elements.hasMoreElements()){
System.out.println(elements.nextElement());
}
System.out.println(vector);--[a,b,c,d]
}
三、LinkedList
LinkedList linkedList = new linkedList()
1. //使用addFirst方法添加
linkedList.addFirst ("a" )
linkedList.addFirst ("b" )
linkedList.addFirst ("c" )
linkedList.addFirst ("d" )
System.out .println (linkedList)
2. //使用addLirst方法添加
linkdeList.addLast ("a" )
linkedList.addLast ("b" )
linkedList.addLast ("c" )
linkedList.addLast ("d" )
System.out .println (linkedList)
3. 获取头尾元素
LinkedList linkedlist = new LinkedList()
linkedList.add ("a" )
linkedList.add ("b" )
linkedList.add ("c" )
System.out .println (linkedList.getFirst ())
System.out .println (linkdeList.getLast ())
四、队列结构和栈结构
栈结构特点:先入后出去
队列结构特点:先进先出
使用LinkedList模拟栈结构
栈结构特点:先入后出去
//模拟进栈
LinkedList linkedList = new LinkedList()
linkedList.addLast ("a" )
linkedList.addLast ("b" )
linkedList.addLast ("c" )
linkedList.addLast ("d" )
System.out .println (linkedList)
//模拟出栈
while1(!linkedList.isEmpty ()){
Object removeLast = linkedList.removeLast ()
System.out .print (removeLast)
}
五、ArrayList去重
1. 要求:创建一个集合,添加a,a,a,b,b,b,c,c,c取出重复
ArrayList arrayList = new ArrayList();
ArrayList newList = new ArrayList();
arrayList.add("a" );
arrayList.add("a" );
arrayList.add("a" );
arrayList.add("b" );
arrayList.add("b" );
arrayList.add("b" );
arrayList.add("c" );
arrayList.add("c" );
arrayList.add("c" );
Iterator iterator = arrayList.iterator();
while (iterator.hasNext()){
Object next = iterator.next();
if ( !newList.contains(next)){
newList.add(next);
}
}
System.out .println(newList);--[a,b,c]
2. 创建一个Array,保存6 个学生,去除重复学生
ArrayList list = new ArrayList();
ArrayList list = new ArrayList();
list.add(new Student("鹏鹏" ,18 ));
list.add(new Student("鹏鹏" ,18 ));
list.add(new Student("水水" ,17 ));
lsit.add(new Student("水水" ,17 ));
list.add(new Student("茜茜" ,16 ));
list.add(new Student("茜茜" ,16 ));
ArrayList newList = new ArrayList();
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Object next = iterator.next();
Student student = (Student)next;
if (!newList.contains(student)) {
newList.add(student);
}
}
for (Object object : newList) {
Student student =(Student)object ;
System.out .println(student);
}
}
package com.lanou3g;
public class Student {
private String namle;
private int age;
public Student () {
}
public Student (String namle, int age) {
super();
this .namle = namle;
this .age = age;
}
public String getNamle () {
return namle;
}
public void setNamle (String namle) {
this .namle = namle;
}
public int getAge () {
return age;
}
public void setAge (int age) {
this .age = age;
}
@Override
public String toString () {
return "Student [namle=" + namle + ", age=" + age + "]" ;
}
@Override
public boolean equals (Object obj) {
Student s =(Student)obj;
return this .namle.equals(s.getNamle()) && this .age ==s.getAge() ;
}
}