可以用集合类实现栈、队列等常见需求
package cn.ibeans.test;
import java.util.LinkedList;
/**
* 本示例程序通过LinkedList集合类现实栈,即体现后进先出的思想
* @author llf
*
*/
public class MyStack {
LinkedList ll = new LinkedList();
/**
* 入栈
* @param o
*/
public void push(Object o){
ll.addFirst(o);
}
/**
* 出栈
* @return
*/
public Object pop(){
return ll.removeFirst();
}
/**
* 检查栈内是否为空
* @return
*/
public boolean isEmpty(){
return ll.isEmpty();
}
public static void main(String[] args) {
MyStack stack = new MyStack();
stack.push("one");
stack.push("two");
stack.push("three");
while(!stack.isEmpty()){
System.out.println(stack.pop());
}
}
}
队列:
package cn.ibeans.test;
import java.util.LinkedList;
import java.util.List;
/**
* 本示例程序实现先进先出的队列思想
* @author llf
*
*/
public class MyQueue {
private LinkedList ll = new LinkedList();
/**
* 入列
* @param o
*/
public void put(Object o){
ll.addLast(o);
}
/**
* 出列
* @return
*/
public Object get(){
return ll.removeFirst();
}
public boolean isEmpty(){
return ll.isEmpty();
}
public static void main(String[] args) {
MyQueue queue = new MyQueue();
queue.put("one");
queue.put("two");
queue.put("three");
while(!queue.isEmpty()){
System.out.println(queue.get());
}
}
}
hashset:
package cn.ibeans.test;
import java.util.HashSet;
import java.util.Iterator;
/**
* 本示例程序通过hashset实现不重复的set集合
* 为此,集合中的每个元素应该实现hashCode()和equals()方法
* @author llf
*
*/
public class MyHashSet {
public static void main(String[] args) {
HashSet hs = new HashSet();
hs.add(new Student("zhangsan",1));
hs.add(new Student("lishi",2));
hs.add(new Student("zhangsan",1));
hs.add(new Student("wangwu",3));
Iterator it = hs.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
class Student{
int age;
String name;
Student(String name,int age){
this.age=age;
this.name = name;
}
public int hashCode(){
return age*name.hashCode();
}
public boolean equals(Object o){
Student s = (Student)o;
return s.age==age && s.name.equals(name);
}
public String toString(){
return "name : "+age;
}
}
treeset:
package cn.ibeans.test;
import java.util.Iterator;
import java.util.TreeSet;
/**
* 通过treeset实现一个排序的集合对象
* 其内每个元素是实现comparable接口,或是用一个比较器来构造treeset对象
* @author llf
*
*/
public class MyTreeSet {
public static void main(String[] args) {
TreeSet hs = new TreeSet();
hs.add(new Man("zhangsan",1));
hs.add(new Man("lishi",2));
hs.add(new Man("zhangsan",1));
hs.add(new Man("wangwu",3));
hs.add(new Man("wangwu",0));
Iterator it = hs.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
class Man implements Comparable{
int age;
String name;
Man(String name,int age){
this.age=age;
this.name = name;
}
public int compareTo(Object o){
Man s = (Man)o;
int result = age>s.age ? 1:(age==s.age?0:-1);
if(result==0){
result = name.compareTo(s.name);
}
return result;
}
public int hashCode(){
return age*name.hashCode();
}
public boolean equals(Object o){
Student s = (Student)o;
return s.age==age && s.name.equals(name);
}
public String toString(){
return name +" : "+age;
}
}
分享到:
相关推荐
### JAVA编程高级——集合类知识点详解 #### 一、Java中的集合类概述 在Java编程中,集合类是一个非常重要的概念,它主要用于存储和管理对象的集合。与数组相比,集合提供了更多的灵活性,例如动态调整大小的能力...
本篇文章将着重介绍`Collection`部分,并探讨一些在大公司面试中常见的Java集合类相关问题。 #### 二、Collection接口及其子接口 - **Collection**:这是最基础的集合接口,用于表示一组对象。根据不同的实现,...
接下来,我们来看一些常见的集合类实现: 1. `ArrayList`:它是`List`接口的一个实现,底层基于动态数组。`ArrayList`提供了快速的随机访问,但在插入和删除元素时,如果元素不在末尾,效率较低,因为需要移动大量...
通过`CollectionTest`文件,我们可以编写测试代码来演示这些集合类的用法,例如添加元素、遍历、查找、删除等操作,以便更好地理解和掌握它们的特性。 总的来说,Java集合框架是程序设计中的核心部分,理解并熟练...
在本篇中,我们将深入探讨Java集合的排序机制以及集合类的详细使用。 首先,我们来了解一下Java集合的基本分类。Java集合主要分为两大类:List(列表)和Set(集)。List是一个有序的集合,允许元素重复,并且可以...
本示例主要探讨的是Java集合类的简单使用,通过一个名为`CollectionsTest.java`的文件进行演示。这篇博客文章可能详细解释了如何创建、操作和理解Java集合类的基本概念。 首先,Java集合框架主要包括接口和实现这些...
在Java的`java.util`包中,集合类扮演着重要的角色,其中List和Map是最为常见的两种。List的实现例如ArrayList和Vector,它们都是可变大小的列表,适合存储和操作各种类型对象的序列。特别是ArrayList,基于动态数组...
Java 集合类及面试题 Java 集合类是 Java 语言中提供的一种容器,用于存储对象的集合。集合类可以分为两大类:Collection 和 Map。 一、集合与数组 集合和数组都是用来存储对象的一种容器,但是数组的长度固定,...
下面是一些常见的.NET集合类及其特点: 1. **ArrayList**:非泛型集合,可以存储任何类型,但需要类型转换,且效率较低。 2. **List**:泛型版本的ArrayList,提供了更高效和类型安全的操作。 3. **HashSet**:存储...
常见的集合类包括NSArray、NSMutableArray、NSDictionary、NSMutableDictionary、NSSet和NSMutableSet等。这些类都是Foundation框架的一部分,为Objective-C和Swift开发者提供了强大的数据结构支持。在这个名为...
这份"java源代码,关于java中常见各种类的用法"的压缩包文件是学习Java基础知识的绝佳资源,尤其适合初学者。它包含了丰富的中文注解,帮助理解复杂的概念,使得学习过程更为直观和轻松。 首先,让我们深入探讨Java...
本文将深入探讨Python迭代器的常见用法,结合实例进行分析。 首先,我们需要了解什么是可迭代对象。在Python中,可迭代对象是指那些可以被`for`循环遍历的对象,如列表、元组、字符串等。这些类型的对象具有内置的...
以下是对标题和描述中提及的Java枚举七种常见用法的详细说明: 1. 常量定义: 在Java中,枚举可以用来组织相关常量,提升代码的可读性和可维护性。例如,我们可以定义一个`Color`枚举,包含`RED`, `GREEN`, `BLANK`...
在Spring MVC框架中,处理HTTP请求并接收参数是一项常见的任务。Spring MVC提供了多种方式来接收前端传递的数据,包括单独的参数、数组、列表以及自定义对象。本教程将重点讲解如何接收ajax和form表单传递的集合参数...
Java集合排序及java集合类详解 Java集合框架是Java编程语言中极其重要的一部分,它提供了存储和操作数据的高效方式。...掌握这些集合类的特性和用法,对于编写高效、健壮的Java应用程序至关重要。
本节将详细介绍其中的一些关键类及其用法。 ##### 1.1 Math类 Math类是一个静态类,它提供了一系列用于执行基本数学运算的方法。这些方法包括常见的数学函数,例如取平方根、指数、对数等,以及常用的数学常量如π...
### 集合类资源:J2SE中的集合框架详解 #### 一、概述 在Java编程语言中,集合框架是一组接口与实现这些接口的类的集合,它提供了存储和操作...掌握这些集合类的基本用法对于编写高效、健壮的Java应用程序至关重要。
这些知识点对于理解和使用这类专业软件至关重要,无论是进行产品设计、工程分析还是制造流程规划,都是必不可少的基础技能。通过深入学习和实践,用户能够更熟练地掌握这些工具,提升其在IT领域的专业能力。
在实际开发中,`Comparable`和`Comparator`接口经常结合使用,尤其是在处理复杂数据结构如树或集合时。例如,`TreeSet`和`TreeMap`类依赖于这些接口来保持其内部元素的有序性。理解并熟练掌握这两种比较器的用法,...
下面详细解析PHP中字符串函数str类的常见用法,并结合示例说明其操作技巧和注意事项。 首先,我们来看str_split函数。这个函数用于将字符串分割成数组。它有两个参数,第一个参数是要分割的字符串,第二个参数指定...