黑马程序员_<<List练习>>
来源:互联网 发布:java 单元测试框架 编辑:程序博客网 时间:2024/05/23 12:18
--------------------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());//出队 } } } 结果:zhangsanlisiwangwu
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());// 出栈 } }}结果:wangwulisizhangsan
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练习>>
- 黑马程序员_练习
- 黑马程序员_小练习
- 黑马程序员_多线程练习
- 黑马程序员_异常练习
- 黑马程序员_<<String练习>>
- 黑马程序员_<<TCP练习>>
- 黑马程序员_<<Collection,List>>
- 黑马程序员_练习登录与注册
- 黑马程序员_骑士飞行棋练习
- 黑马程序员_集合的小练习
- 黑马程序员_练习手写Html表单
- 黑马程序员_阶段练习2
- 黑马程序员_我的死锁练习
- 黑马程序员_基础练习(1)
- 黑马程序员_日记22_JavaStringTrim练习
- 黑马程序员_日记46_TreeSet练习
- 黑马程序员_集合框架(List,Set)
- C++虚指针
- POJ-3468-A Simple Problem with Integers
- 存储器映射
- aix磁盘管理命令
- Eclipse for PHP开发环境
- 黑马程序员_<<List练习>>
- mysqli扩展库的预处理机制
- JavaScript 获取客户端计算机硬件及系统信息
- 动画
- 【数位DP】 【HDU 3652】
- notepad++快捷键
- linux下安装JDK和tomcat
- [转】关于字符集的3篇文章
- 码农如何快速打造一个有设计感的网站