`
ll_feng
  • 浏览: 391091 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

集合类的常见用法

    博客分类:
  • j2se
阅读更多
可以用集合类实现栈、队列等常见需求

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;
	}
}
分享到:
评论

相关推荐

    2JAVA编程高级-集合类.pdf

    ### JAVA编程高级——集合类知识点详解 #### 一、Java中的集合类概述 在Java编程中,集合类是一个非常重要的概念,它主要用于存储和管理对象的集合。与数组相比,集合提供了更多的灵活性,例如动态调整大小的能力...

    大公司最喜欢问的Java集合类面试题

    本篇文章将着重介绍`Collection`部分,并探讨一些在大公司面试中常见的Java集合类相关问题。 #### 二、Collection接口及其子接口 - **Collection**:这是最基础的集合接口,用于表示一组对象。根据不同的实现,...

    java 集合类讲解

    接下来,我们来看一些常见的集合类实现: 1. `ArrayList`:它是`List`接口的一个实现,底层基于动态数组。`ArrayList`提供了快速的随机访问,但在插入和删除元素时,如果元素不在末尾,效率较低,因为需要移动大量...

    集合类的总结

    通过`CollectionTest`文件,我们可以编写测试代码来演示这些集合类的用法,例如添加元素、遍历、查找、删除等操作,以便更好地理解和掌握它们的特性。 总的来说,Java集合框架是程序设计中的核心部分,理解并熟练...

    Java集合排序及java集合类详解

    在本篇中,我们将深入探讨Java集合的排序机制以及集合类的详细使用。 首先,我们来了解一下Java集合的基本分类。Java集合主要分为两大类:List(列表)和Set(集)。List是一个有序的集合,允许元素重复,并且可以...

    Java 集合类 简单Demo

    本示例主要探讨的是Java集合类的简单使用,通过一个名为`CollectionsTest.java`的文件进行演示。这篇博客文章可能详细解释了如何创建、操作和理解Java集合类的基本概念。 首先,Java集合框架主要包括接口和实现这些...

    Java Map 集合类简介

    在Java的`java.util`包中,集合类扮演着重要的角色,其中List和Map是最为常见的两种。List的实现例如ArrayList和Vector,它们都是可变大小的列表,适合存储和操作各种类型对象的序列。特别是ArrayList,基于动态数组...

    java集合类及面试题

    Java 集合类及面试题 Java 集合类是 Java 语言中提供的一种容器,用于存储对象的集合。集合类可以分为两大类:Collection 和 Map。 一、集合与数组 集合和数组都是用来存储对象的一种容器,但是数组的长度固定,...

    .net中集合的练习

    下面是一些常见的.NET集合类及其特点: 1. **ArrayList**:非泛型集合,可以存储任何类型,但需要类型转换,且效率较低。 2. **List**:泛型版本的ArrayList,提供了更高效和类型安全的操作。 3. **HashSet**:存储...

    常见的集合类

    常见的集合类包括NSArray、NSMutableArray、NSDictionary、NSMutableDictionary、NSSet和NSMutableSet等。这些类都是Foundation框架的一部分,为Objective-C和Swift开发者提供了强大的数据结构支持。在这个名为...

    java源代码,关于java中常见各种类的用法

    这份"java源代码,关于java中常见各种类的用法"的压缩包文件是学习Java基础知识的绝佳资源,尤其适合初学者。它包含了丰富的中文注解,帮助理解复杂的概念,使得学习过程更为直观和轻松。 首先,让我们深入探讨Java...

    python迭代器常见用法实例分析

    本文将深入探讨Python迭代器的常见用法,结合实例进行分析。 首先,我们需要了解什么是可迭代对象。在Python中,可迭代对象是指那些可以被`for`循环遍历的对象,如列表、元组、字符串等。这些类型的对象具有内置的...

    Java枚举的七种常见用法.doc

    以下是对标题和描述中提及的Java枚举七种常见用法的详细说明: 1. 常量定义: 在Java中,枚举可以用来组织相关常量,提升代码的可读性和可维护性。例如,我们可以定义一个`Color`枚举,包含`RED`, `GREEN`, `BLANK`...

    springMvc集合接收参数的用法

    在Spring MVC框架中,处理HTTP请求并接收参数是一项常见的任务。Spring MVC提供了多种方式来接收前端传递的数据,包括单独的参数、数组、列表以及自定义对象。本教程将重点讲解如何接收ajax和form表单传递的集合参数...

    Java集合排序及java集合类详解(Collection、List、Map、Set

    Java集合排序及java集合类详解 Java集合框架是Java编程语言中极其重要的一部分,它提供了存储和操作数据的高效方式。...掌握这些集合类的特性和用法,对于编写高效、健壮的Java应用程序至关重要。

    Java常用类及集合操作

    本节将详细介绍其中的一些关键类及其用法。 ##### 1.1 Math类 Math类是一个静态类,它提供了一系列用于执行基本数学运算的方法。这些方法包括常见的数学函数,例如取平方根、指数、对数等,以及常用的数学常量如π...

    集合类资源

    ### 集合类资源:J2SE中的集合框架详解 #### 一、概述 在Java编程语言中,集合框架是一组接口与实现这些接口的类的集合,它提供了存储和操作...掌握这些集合类的基本用法对于编写高效、健壮的Java应用程序至关重要。

    java比较器的常见用法[借鉴].pdf

    在实际开发中,`Comparable`和`Comparator`接口经常结合使用,尤其是在处理复杂数据结构如树或集合时。例如,`TreeSet`和`TreeMap`类依赖于这些接口来保持其内部元素的有序性。理解并熟练掌握这两种比较器的用法,...

    php字符串函数 str类常见用法示例

    下面详细解析PHP中字符串函数str类的常见用法,并结合示例说明其操作技巧和注意事项。 首先,我们来看str_split函数。这个函数用于将字符串分割成数组。它有两个参数,第一个参数是要分割的字符串,第二个参数指定...

    java Date类和集合

    Java中的`Date`类和集合类是编程中非常基础且重要的概念。`Date`类主要用于处理日期和时间,而集合类则提供了存储和操作对象的容器。在这篇笔记中,我们将深入探讨这两个主题。 首先,`java.util.Date`类虽然在Java...

Global site tag (gtag.js) - Google Analytics