--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------
1. 队列
模拟队列:队列的特点:先进先出
package www.fuxi.jihe;
importjava.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
/*
* 思路:
* 1.队列的特点是先进先出
* 2.我们添加的时候,每次就把其放到第一位,然后取出的时候,就从最后一位来读取
* */
public classDuiLie {
private LinkedList list =null;
public DuiLie(){
list = new LinkedList();
}
/* 添加元素 */
public void addList(Object ob) {
list.addFirst(ob);// 添加到第一位
}
/* 获取元素 */
public Object getList() {
return list.removeLast();// 删除元素,并且把删除的元素返回,但还是如果空的话,那就有异常,所以读取的时候,先判断是否为空
}
/* 判断 */
public boolean isEmpty() {
return list.isEmpty();
}
public static void main(String[] args) {
DuiLie ll = new DuiLie();
ll.addList("zhangsan");// 如队列
ll.addList("lisi");
ll.addList("wangwu");
while (!ll.isEmpty()) {
System.out.println(ll.getList());//出队
}
}
}
结果:
zhangsan
lisi
wangwu
2. 栈
栈的特点:先进后出
package www.fuxi.jihe;
import java.util.LinkedList;
/*栈
* 思路:
* 1.栈的特点是:先进后出
* 2.每次入栈的时候,都放到第一位,那么取出的时候,也从第一位取出
* */
public class Zhan {
private LinkedList list = null;
public Zhan() {
list = new LinkedList();
}
/* 添加元素 */
public void addList(Object ob) {
list.addFirst(ob);// 添加到第一位
}
/* 获取元素 */
public Object getList() {
return list.removeFirst();// 删除元素,并且把删除的元素返回,但还是如果空的话,那就有异常,所以读取的时候,先判断是否为空
}
/* 判断 */
public boolean isEmpty() {
return list.isEmpty();
}
public static void main(String[] agrs) {
Zhan ll = new Zhan();
ll.addList("zhangsan");// 入栈
ll.addList("lisi");
ll.addList("wangwu");
while (!ll.isEmpty()) {
System.out.println(ll.getList());// 出栈
}
}
}
结果:
wangwu
lisi
zhangsan
3. 去除重复元素
思路:(ArrayList)
将集合中的元素一个一个的读取出来,然后放到一个新的集合中,在放到新的集合中之前,看新的集合中是否存在此元素,如果存在此元素,那么就不存入,要是不存在,则存到新的集合中。
package www.fuxi.jihe;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ArrayListDemo {
/* 去掉重复元素的方法 */
public List getRepElement(List list) {
List newList = new ArrayList();
for (Iterator it = list.iterator(); it.hasNext();) {
Object ob = it.next();
if (!newList.contains(ob)) {
newList.add(ob);
}
}
return newList;
}
public static void main(String[] args) {
ArrayListDemo demo = new ArrayListDemo();
ArrayList list = new ArrayList();
list.add("java01");
list.add("java02");
list.add("java03");
list.add("java03");
list.add("java02");
list.add("java05");
System.out.println("含有重复元素的集合:" + list);
list = (ArrayList)demo.getRepElement(list);
System.out.println("去掉重复元素的集合:" + list);
}
}
结果:
含有重复元素的集合:[java01, java02, java03, java03, java02, java05]
去掉重复元素的集合:[java01, java02, java03, java05]
4. 存储自定义对象
自定义类,然后把其对象存储到集合中,然后去除相同的元素,我们要从写equals()方法,让他们按照自己定义的比较方式比较,名称和名字都一样,那么这两个对象才相同,否则不是同一个对象。
当集合进行判断是否包含(contains())此对象的时候,默认的调用了对象的equals()方法
package www.fuxi.jihe;
import java.util.ArrayList;
import java.util.Iterator;
class Person {
private String name;
private int age;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public boolean equals(Object ob) {
if (!(ob instanceof Person)) {
return false;
}
Person p = (Person) ob;
return this.name.equals(p.name) && this.age == p.age;
}
}
class ArrayListDemo {
public static void show(ArrayList list) {
Iterator it = list.iterator();
while (it.hasNext()) {
Person p = (Person) it.next();
System.out.println(p.getName() + "---" + p.getAge());
}
}
public static ArrayList singList(ArrayList l) {
ArrayList newList = new ArrayList();
Iterator it = l.iterator();
while (it.hasNext()) {
Object ob = it.next();
if (!newList.contains(ob)) {
newList.add(ob);
}
}
return newList;
}
public static void main(String[] args) {
ArrayList ps = new ArrayList();
ps.add(new Person("张三", 23));
ps.add(new Person("李四", 22));
ps.add(new Person("李四", 22));
ps.add(new Person("李四", 22));
ps.add(new Person("王五", 24));
ps.add(new Person("王五", 24));
ps.add(new Person("王五", 24));
ps.add(new Person("王五", 24));
System.out.println("含有重复元素的集合:");
show(ps);
System.out.println("---------------");
System.out.println("去除重复元素的集合:");
ps = singList(ps);
show(ps);
}
}
结果:
含有重复元素的集合:
张三---23
李四---22
李四---22
李四---22
王五---24
王五---24
王五---24
王五---24
---------------
去除重复元素的集合:
张三---23
李四---22
王五---24
只要执行一次contains,然后就执行equals方法
--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流!
--------------------
分享到:
相关推荐
List<Bean>转换为List<Map>, List<Object>转换为List<Object> list转化为 JsonArray ,list转换JsonArray
- group list_topics <group_alias> <_type> <start> - group list_user_comments <topic_id> <user_alias> - group list_user_topics <start> - group rec_topic <topic_id> - group remove_comment <topic_id...
C#_List_<T>排序方法代码实现与文档
一般使用springjdbc、hibernate的sql查询,库获取到的数据都是List<Map<String, Object>>结果集,如果我们要转化为JavaBean,则需要做一系列的map.get(),然后obj.set()。 此工程中就是解决List<Map<String, Object>...
精华志 C#_List_<T>+Find+Exists+FindAll+Sort用法+范例 京华志&精华志出品 分享资源 C# ASP.NET SQL DBA 源码
Queue 数据结构Queue类<br>SH_List 数据结构List类<br>SH_Hash 数据结构Hash类<br>SH_Tree 数据结构Tree(AVL)类<br>SH_Lock 互斥Lock类<br>SH_Serial 串口类<br>SH_Socket 套接字类 <br>SH_Tcp TCP类 <br>SH_Udp UDP...
Map里存放的是List时<br><br><logic:iterate id="destMap" name="srcMap"><br><br> <logic:iterate id="bean" name="destMap" property="value" /><br><br> <bean:write name="bean" property="name" /><br><br> </...
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><br><html><br> <head><br> </head><br> <body><br> <table><br> <tr><br> <td><%@ include file="../menu.txt"%><br> </td><br> </tr>...
<tr><td><a href="3.5/mail_list.html">3.5邮件订阅</a></td></tr> <tr><td><a href="3.6/index.jsp">3.6产品评级</a></td></tr> <tr><td class="item">第四章 服务器端计算</td></tr> <tr><td><a href="4.1/calc....
<tr><br> <td>姓名</td><br> <td>年龄</td><br> <td>所属组</td><br> </tr><br> <c:forEach var="user" items="${userlist}"><br> <tr><br> <td><c:out value="${user.username}"/></td><br> <td><c:out value="${...
<br>}<br>}<br><br>//执行就绪队列,运行队列的第一个进程,每次只执行一个时间片<br>void TimeServe::run_ready(list<PCB *>::iterator &it)<br>{<br> if(ready_list->empty()) return;//就绪队列为空就不执行,否则...
10<br><br>0023 如何添加引用第3方控件 11<br><br>0024 如何生成DLL文件 11<br><br>0025 如何使用不安全代码 11<br><br>第2章 语言基础 13<br><br>2.1 注释 14<br><br>0026 如何对代码进行注释 14<br>...
<title>用户列表</title> </head> <body> <a href="/add_person/">添加用户</a> <table border="1"> <thead> <tr> <th>ID</th> <th>firsName</th> <th>lastName</th> <th>操作</th> </tr> </...
<DeviceList> <Device> <Mac>F00001</Mac> <IP>172.22.10.131</IP> <Port>52516</Port> <Name>Device0</Name> <LastData>0:0:0:0:0:0</LastData> <LastGetTime>2018/10/30 16:40:00</LastGetTime> <State>0...
简单列表模型,可在windows和linux下编译,相比QT商业巨头,更阳光可自主
table="events"><br> <id name="id" column="EVENT_ID"><br> <generator class="native"/><br> </id><br> <property name="date" type="timestamp" column="EVENT_DATE"/><br> <property name="title"/><br> </class...
<div id="rp_list" class="rp_list"> <ul> <li style="display: list-item;"> <div style="margin-left: -5px;" class="fxbox"> <a href="#" class="fxboxcon" target="_blank"> </a> </div> </li> <li ...
<td width="594" height="16" valign="top" background="/images/index_13.jpg"><script language='JavaScript' type='text/JavaScript' src='/Article/js/menu.js'></script> <script type='text/javascript' ...
<key>北京市</key> <dict> <key>0</key> <dict> <key>北京市</key> <array> <string>东城区</string> <string>西城区</string> <string>朝阳区</string> <string>丰台区</string> ...
<s:iterator value="list" id="book" status="u"> <tr> <td> <s:property value="id" /> </td> <td> <s:property value="name" /> </td> <td> ...