`
i拾贝
  • 浏览: 30023 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java中的容器Collection

    博客分类:
  • java
阅读更多

java中的容器

1136

1个图,

1个类(Collections),

三个知识点(增强的for循环,Generic(泛型),Auto-boxing/boxing(自动打包/解包)),

6个接口:

Interface Collection<E>

Interface Set<E>

Interface List<E>

Interface Map<K,V>

Interface Iterator<E>

Interface Comparable<T>

 

一个图:


 

TestCollect.java

import java.util.*;
//java中的容器
//一个图,8个接口
public class TestCollection {
	public static void main(String[] args) {
		
		//父类的引用指向子类的对象,多态
		Collection c = new ArrayList();		
		//add()添加对象
		c.add("hello");
		c.add(new Name("f1","l1"));
		c.add(new Integer(100));
		
		System.out.println(c.size());//3
		System.out.println(c);//[hello, f1 l1, 100]
				
	}
}

class Name{
	private String firstName,lastName;
	
	public Name(String firstName, String lastName) {
		this.firstName = firstName;
		this.lastName = lastName;		
	}
	
	public String getFirstName(){
		return firstName;
	}
	
	public String getLastName(){
		return lastName;
	}
	
	public String toString(){
		return firstName +" "+ lastName;
	}
	
}

 

F:\java>javac TestCollection.java
注: TestCollection.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

F:\java>java TestCollection
3
[hello, f1 l1, 100]

F:\java>

 可以看到上面的信息,出现了一些警告,不用管他。

输出结果为:

3

[hello, f1 l1, 100]

 

 BasicContainer.java

import java.util.*;

public class BasicContainer {
    public static void main(String[] args) {
        Collection c = new HashSet();
        c.add("hello");
        c.add(new Name("f1","l1"));
        c.add(new Integer(100));
        c.remove("hello"); 
        c.remove(new Integer(100));
		//remove移除容器中的元素
        System.out.println(c.remove(new Name("f1","l1")));
        System.out.println(c);
    }


}

class Name /*implements Comparable*/ {
    private String firstName,lastName;
    public Name(String firstName, String lastName) {
        this.firstName = firstName; this.lastName = lastName;
    }
    public String getFirstName() {  return firstName;   }
    public String getLastName() {   return lastName;   }
    public String toString() {  return firstName + " " + lastName;  }
    
	/*
    public boolean equals(Object obj) {
	    if (obj instanceof Name) {
	        Name name = (Name) obj;
	        return (firstName.equals(name.firstName))
	            && (lastName.equals(name.lastName));
	    }
	    return super.equals(obj);
		}
		public int hashCode() {
		    return firstName.hashCode();
		}
		
		
		
		public int compareTo(Object o) {
        Name n = (Name)o;
        int lastCmp = 
            lastName.compareTo(n.lastName);
        return 
             (lastCmp!=0 ? lastCmp :
              firstName.compareTo(n.firstName));
    }
	*/
		
}

 

F:\java>javac BasicContainer.java
注: BasicContainer.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

F:\java>java BasicContainer
false
[f1 l1]

F:\java>

删除不彻底,重写Name类的equlas()和hashCode()方法 

 

BasicContainer.java

import java.util.*;

public class BasicContainer {
    public static void main(String[] args) {
        Collection c = new HashSet();
        c.add("hello");
        c.add(new Name("f1","l1"));
        c.add(new Integer(100));
        c.remove("hello"); 
        c.remove(new Integer(100));
		//remove移除容器中的元素
        System.out.println(c.remove(new Name("f1","l1")));
        System.out.println(c);
    }


}

class Name /*implements Comparable*/ {
    private String firstName,lastName;
    public Name(String firstName, String lastName) {
        this.firstName = firstName; this.lastName = lastName;
    }
    public String getFirstName() {  return firstName;   }
    public String getLastName() {   return lastName;   }
    public String toString() {  return firstName + " " + lastName;  }
    
	/**
	*	重写equals方法
	*/
    public boolean equals(Object obj) {
	    if (obj instanceof Name) {
	        Name name = (Name) obj;
	        return (firstName.equals(name.firstName))
	            && (lastName.equals(name.lastName));
	    }
	    return super.equals(obj);
	}
	/**
	*	重写hashCode方法
	*/
	public int hashCode() {
		    return firstName.hashCode();
	}
			
	/*
	public int compareTo(Object o) {
        Name n = (Name)o;
        int lastCmp = 
            lastName.compareTo(n.lastName);
        return 
             (lastCmp!=0 ? lastCmp :
              firstName.compareTo(n.firstName));
    }
	*/
		
}

 

F:\java>javac BasicContainer.java
注: BasicContainer.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

F:\java>java BasicContainer
true
[]

F:\java>

 

 

 

 

  • 大小: 73.5 KB
分享到:
评论

相关推荐

    Java容器框架 collection集合

    ### Java容器框架 Collection集合 ...以上是对Java容器框架中的 `Collection` 集合的详细介绍,包括基本概念、接口方法以及 `List` 接口的深入讲解。这些知识点对于理解和应用Java集合框架至关重要。

    java容器详细解析

    Java容器详细解析 Java容器是一种基本的数据...Java容器是Java语言中的一种基本数据结构,用于存储和管理对象。Java容器主要分为Collection和Map两大类,每种容器都有其优点和缺点,需要根据实际情况选择合适的容器。

    java容器(持有对象)

    在Java编程中,容器是用来存储和管理对象的类或接口,它们使得我们可以在程序中方便地组织和操作数据。在Java中,常见的容器主要分为三类:List、Set和Map,这些都是Java集合框架的重要组成部分。 首先,我们来看...

    JAVA容器知识积累

    Java容器是Java编程中至关重要的一个部分,它们用于存储、管理和操作对象集合。在这个主题下,我们将深入探讨Java中的核心容器类,包括数组、List、Set和Map,以及它们各自的特点和使用场景。 1. **数组**:数组是...

    java容器学习心得

    ### Java容器学习心得详解 在Java编程中,容器(Containers)是存储和操作对象集合的重要工具,主要包括集合(Collections)和映射(Maps)。本文将深入解析Java容器的关键概念、特性以及不同容器类型的应用场景。 ...

    JAVA容器对象整理

    这篇博客"JAVA容器对象整理"可能涵盖了关于Java中的不同容器类、接口以及它们的使用方式。在这里,我们将深入探讨一些核心的Java容器知识点。 1. **ArrayList与LinkedList** - `ArrayList`是一个基于数组实现的...

    java练习题--容器使用练习

    在Java编程语言中,容器是用于存储对象的集合框架,它们提供了一种高效且灵活的方式来组织和...记得在实践中不断挑战自己,尝试不同的场景和数据结构,以便更好地掌握Java容器的精髓。祝你在学习过程中取得优异的成绩!

    JAVA容器试题.docx

    【JAVA容器试题解析】 一、不定选择题 1. Java 容器框架主要分为 Collection 和 Map 两种。其中,Collection 又分为A、List,B、Set,C、Queue,D、以上都是。答案:D。 2. 以下哪一个是线程安全的:A、Vector,B...

    java容器类

    java 容器类 集合类 Collection 你懂了吗

    Java 容器.pdf_电子版pdf版

    Java 容器是 Java 语言中的一种集合类库,主要包括 Collection 和 Map 两种类型。Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。 Collection Collection 是一种集合接口,提供了对集合...

    JAVA集合容器课件

    Java集合容器是Java编程语言中用于存储和管理对象的核心组件。在Java中,集合框架提供了多种数据结构,如列表(List)、集(Set)和映射(Map),以适应不同的数据处理需求。以下是对这些主要知识点的详细说明: 1....

    Java集合Collection、List、Set、Map使用详解

    本文将深入解析Java集合中的Collection、List、Set和Map,包括它们的使用方法、实现原理以及如何进行排序。 ### 集合框架概述 1.1.1 容器简介 容器是Java集合框架的基础,它是一个可以存储多个对象的容器,提供了...

    java对象容器.docx

    Java对象容器是Java编程语言中用于存储和管理对象的关键组件,它们提供了灵活的方式来组织和操作数据,弥补了数组在某些场景下的不足。本篇文章将详细探讨Java中的对象容器,包括其核心特性、主要类型以及如何根据...

    02-Java集合容器面试题(2020最新版)-重点.pdf

    Java集合容器是Java编程中非常重要的组成部分,掌握其概念、原理以及各种集合类的特点和使用场景对于开发高质量的应用程序至关重要。通过本篇文章的学习,希望读者能够更好地理解和应用Java集合容器,提升编程技能。

    java容器详解(collection,list,set,map)

    java集合的详解,collection,list,set,map疑难解答,对于对容器似懂非懂的新手来说,这无疑是给你指点迷津的一个非常不错的选择,讲解内容丰富。

    java容器类 是初学者很好的学习材料

    Java容器类是Java编程语言中不可或缺的一部分,它们主要用于存储和管理对象。这些类和接口位于`java.util`包中,为开发者提供了灵活的数据结构和数据操作方式。在Java中,容器类主要分为两大类:Collection和Map。 ...

    JAVA容器效率深度分析List

    在Java编程中,容器是用于...总之,理解并掌握这些Java容器的特性和效率差异,能够帮助我们在实际开发中做出更合适的选择,提高程序的性能和可维护性。在具体应用时,还需要结合业务需求和性能测试,才能做出最佳决策。

    JAVA容器讲解.pdf

    Java容器讲解PPT,Collection Map(HashMap TreeMap LinkedHashMap) List (ArrayList LinkedList Vector) Set (HashSet TreeSet LinkedHashSet)

Global site tag (gtag.js) - Google Analytics