**
(一.)list集合去重的思路及代码
**
实现思路
利用List集合contains方法循环遍历,先创建新的List集合,接着循环遍历原来的List集合,判断新集合是否包含有旧集合,如果有,则不添加至新集合,否则添加。最后,把旧集合清空,把新集合元素赋值给旧集合。
实现代码
1.当list集合中代码元素全为String类型时
System.out.println(list.size());输出结果为5代表list未去重所以它的长度为5
System.out.println(NewList.size());输出结果为4代表调用了repeatList方法
repeatList方法
方法思路为实现思路
2.当list集合中代码元素全为对象时
输出结果如下图
解析
equals方法:
String中的equals方法用来对比元素
object中的equals方法可以用来对比对象地址
所以在Person类中重写equals方法
- list集合去重代码相对繁琐,运行时需要根据list集合长度来决定,时间花费较长
(二).集合框架Vector
public static void main(String[] args) {
Vector v=new Vector<>();
v.add("aa");
v.add("bb");
v.add("cc");
Enumeration a=v.elements();
//遍历输出
while(a.hasMoreElements()) {
System.out.println(a.nextElement());
}
}
(三).队列,堆栈
1.队列
队列特点:先进先出
代码如下:
public class LinkedlistDemo {
public static void main(String[] args) {
duilie dl =new duilie();
dl.push(1);
dl.push(2);
dl.push(3);
dl.push(4);
dl.push(6);
dl.bianli();
}
}
//编辑队列方法
class duilie{
private LinkedList lk = new LinkedList<>();
//存放进容器
public void push(Object obj){
lk.addLast(obj);
}
//取出元素
public Object pop() {
return lk.removeFirst();
}
//使用迭代器遍历方法
public void bianli() {
Iterator it = lk.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
队列的特殊方法有:
当前列表第一个
getFirst();
当前列表最后一个
getLast();
移除当前列表第一个
removeFirst();
移除当前列表最后一个
removeLast();
2.堆栈
1.堆栈特点:后放先出
代码如下:
package com.tanzhixian;
import java.util.Iterator;
import java.util.LinkedList;
/**
@author Administrator
*堆栈的特点:每一次都将元素放在容器的顶部
*取元素的时候先从容器顶部取出
*/
public class LinkedlistDemo {
public static void main(String[] args) {
duiz dz = new duiz();
dz.push(1);
dz.push(2);
dz.push(3);
dz.push(4);
dz.push(6);
dz.bianli();
}
}
//编辑堆栈方法
class duiz{
private LinkedList lk = new LinkedList<>();
//存放进容器
public void push(Object obj){
lk.addFirst(obj);
}
//取出元素
public Object pop() {
return lk.removeFirst();
}
//使用迭代器遍历方法
public void bianli() {
Iterator it = lk.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}