`
huangfeiNetJava
  • 浏览: 40779 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

java集合框架总结

 
阅读更多

java.util.Set<E>:

 

        特点:

          1.Set提供一个无序的集合

          2.不能有重复的对象

          3.无法通过索引取得特定的对象,只能通过迭代器取出对象(详见下面代码)

 

     常见实现子类:

      HashSet、TreeSet

 

      常用方法:

 boolean add(E e)
          如果 set 中尚未存在指定的元素,则添加此元素(可选操作)。

 void    clear()
          移除此 set 中的所有元素(可选操作)。
 boolean contains(Object o)
          如果 set 包含指定的元素,则返回 true
 Iterator<E> iterator()
          返回在此 set 中的元素上进行迭代的迭代器。
 int    size()
          返回 set 中的元素数(其容量)。

 

代码示例:

功能:将对象添加到集合框架并对对象进行排序

Student类:

package lesson3;

//定义一个学生类
public class Student {

	// 定义一个姓名属性,默认值是null
	private String name;
	// 定义一个学分属性,默认值是0.0
	private double score;
	
	public Student() {
	}

	public Student(String name, int score) {
		this.name = name;
		this.score = score;
	}

	// 定义设置姓名属性值的方法
	public void setName(String strName) {
		// 将strName的值赋给name
		name = strName;
	}

	// 定义获取姓名属性值的方法
	public String getName() {
		return name;
	}

	public double getScore() {
		return score;
	}

	// 定义一个学习的方法
	public void study() {
		// 学习的时候学分加1
		score++;
		// 输出结果
		System.out.println(name + "学习中,学分是" + score);
	}

	public void showInfo() {
		System.out.println("姓名: " + name + "     学分: " + score);
	}

}

 

将Student类对象添加到Set集合框架并对所有Student对象按学分从高到低进行排序

 

package lesson3;

import java.util.Collection;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class SetSort {
	// 存放的随机数数组
	public static double[] array = new double[26];

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SetSort test = new SetSort();
		Collection<Student> sSet = test.getUserSet(26);
		System.out.println("集合中共有元素:" + sSet.size());
		// 将Set中所有元素取出打印;
		// set是无序的,所以不能根据索引取,得到set的迭代器
		java.util.Iterator<Student> it = sSet.iterator();
		// 遍历
		while (it.hasNext()) {
			Student st = it.next();
			st.showInfo();
		}
		// 对数组进行排序
		for (int i = 0; i < 26; i++) {
			for (int j = i; j < 26; j++) {
				if (array[j] > array[i]) {
					double t = array[i];
					array[i] = array[j];
					array[j] = t;
				}
			}
		}
		System.out.println("==============分割线==================");
		for (int i = 0; i < array.length; i++) {
			// System.out.println("  " + array[i]);
			java.util.Iterator<Student> iter = sSet.iterator();
			while (iter.hasNext()) {
				Student st = iter.next();
				if (st.getScore() == array[i]) {
					st.showInfo();
				}
			}
		}
	}

	public Collection<Student> getUserSet(int userCount) {
		Set<Student> sSet = new HashSet<Student>();
		Random rand = new Random();
		for (int i = 0; i < userCount; i++) {
			int j = rand.nextInt(100);
			Student ui = new Student("用户: " + ((char) (65 + i)), j);
			array[i] = (double) j;
			sSet.add(ui);
		}
		return sSet;
	}

}

 

 

java.util.List<E>:

 

         特点:

            1.对象的存储是有序的,即线性存储

            2.可以通过索引值得到指定的对象

 

        常见实现子类:

           ArrayList、Vector

 

        常用方法:

 boolean add(E e)
          向列表的尾部添加指定的元素(可选操作)。
 E get(int index)
          返回列表中指定位置的元素。
 int size()
          返回列表中的元素数。
 int indexOf(Object o)
          返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。

 

代码示例:

功能:同以上Set部分

(Student类见Set部分的代码)

使用子类:Vector

package lesson3;

import java.util.Random;
import java.util.Vector;

public class VectorTest {
	// 存放的随机数数组
	public static double[] array = new double[26];

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		VectorTest test = new VectorTest();
		Vector<Student> sSet = test.getUserSet(26);
		System.out.println("集合中共有元素:" + sSet.size());
		// 遍历
		for (int i = 0; i < sSet.size(); i++) {
			Student st = sSet.get(i);
			st.showInfo();
		}
		// 对数组进行排序
		for (int i = 0; i < 26; i++) {
			for (int j = i; j < 26; j++) {
				if (array[j] > array[i]) {
					double t = array[i];
					array[i] = array[j];
					array[j] = t;
				}
			}
		}
		System.out.println("==============分割线==================");
		for (int i = 0; i < array.length; i++) {
			// System.out.println("  " + array[i]);
			for (int j = 0; j < sSet.size(); j++) {
				if (array[i] == sSet.get(j).getScore()) {
					sSet.get(j).showInfo();
				}
			}
		}
	}

	public Vector<Student> getUserSet(int userCount) {
		Vector<Student> sSet = new Vector<Student>(26);
		Random rand = new Random();
		for (int i = 0; i < userCount; i++) {
			int j = rand.nextInt(100);
			Student ui = new Student("用户: " + ((char) (65 + i)), j);
			array[i] = (double) j;
			sSet.add(ui);
		}
		return sSet;
	}

}

 

 

java.util.Map<K,V>:

 

      特点:

        1.以键值对方式存储,每一个key对应一个value

        2.不可以形成一个key对多个value的形式

        3.可以根据key来索引value

 

      常见实现子类:

       HashMap、Hashtable、TreeMap

 

      常用方法:

 V put(K key, V value)
          将指定的值与此映射中的指定键关联(可选操作)。
 V get(Object key)
          返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null
 Set<K> keySet()
          返回此映射中包含的键的
Set 视图。
 int size()
          返回此映射中的键-值映射关系数

 

 

代码示例:

package lesson3;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Random;
import java.util.Set;

public class MapTest {

 public static void main(String[] args) {
  HashMap<String, Student> m = MapTest();
  // 要得到键,就得把所有的键装到一个Set框架中
  Set<String> set = m.keySet();
  // 得到迭代器
  Iterator<String> it = set.iterator();
  // 迭代器循环输出
  while (it.hasNext()) {
   String str = it.next();
   Student stu = m.get(str);
   stu.showInfo();
  }

 }

 // map测试方法
 public static HashMap<String, Student> MapTest() {
  HashMap<String, Student> map = new HashMap<String, Student>();
  String str = "1";
  Random rand = new Random();
  for (int i = 0; i < 5; i++) {
   str += i + 2;
   // 得到随机数
   int j = rand.nextInt(100);
   // 创建学生类对象
   Student stu = new Student(str, j);
   // 将对象加到map集合中
   map.put(str, stu);
  }
  return map;
 }

}

 

2
6
分享到:
评论

相关推荐

    Java集合框架总结

    ### Java集合框架总结 #### 一、Java集合框架概述 Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和...

    JAVA集合框架学习总结

    本文档为本人学习 java 集合框架期间的学习总结笔记,希望对新学习的朋友有所帮助和参考价值。本人java 开发时间不是太长,可能存在不完善或不对之处,欢迎指正!

    Java集合框架使用总结

    ### Java集合框架使用总结 #### 前言 本文旨在为读者提供关于Java集合框架的概览性介绍,帮助理解其整体架构与设计理念。对于希望深入掌握特定接口或类使用方法的学习者,建议查阅官方提供的Java API文档。 #### ...

    Java集合框架常见面试题.pdf

    根据提供的文档内容,文件是关于Java集合框架的面试题知识点总结。以下是Java集合框架的知识点详述: Java集合框架主要包括Collection接口和Map接口两大分支。Collection接口主要包括List、Set以及Queue三个子接口...

    JAVA集合框架学习思考+总结

    JAVA集合框架,java框架总结,java集合框架,java集合框架学习,java集合框架类

    数据结构和Java集合框架

    总结来说,理解数据结构和掌握Java集合框架是每个Java开发者必备的技能。它们不仅影响代码的可读性和可维护性,也直接影响到程序的执行效率。熟悉这些概念并能灵活运用,将使你在编程实践中更加游刃有余。通过阅读如...

    Java集合框架常见面试题夜间阅读版.pdf

    根据提供的信息,我们可以总结并详细解释关于Java集合框架的一些关键知识点。这些知识点主要涉及Java集合框架中的各种数据结构,如List、Set、Map等,并深入探讨了它们在实际应用中的特性与用途。 ### Java集合框架...

    Java集合框架使用总结.pdf

    Java集合框架是Java编程语言中不可或缺的一部分,它提供了一组高效的数据结构和算法,使得开发者可以方便地管理和操作数据。本文主要围绕Java集合框架的核心概念、接口和类进行阐述。 首先,集合框架是Java中用于...

    Java集合框架面试题

    "Java集合框架面试题" Java 集合框架是 Java 语言中的一组预定义类和接口的集合,用于存储和操作数据。下面是 Java 集合框架的知识点总结: 1. Java 集合类主要有两大分支:Collection 接口和 Map 接口。...

    第03章.java集合框架.ppt

    Java 集合框架知识点总览 Java 集合框架是 Java 语言中提供的一种处理集合的机制,它提供了一种灵活、可靠、可扩展的方式来存储和操作对象的集合。在本章节中,我们将详细介绍 Java 集合框架的主要组成部分、使用...

    java集合框架详解以及区别

    总结来说,Java集合框架提供了丰富的数据结构选择,根据实际需求,如是否需要排序、是否关心元素顺序、是否需要线程安全、性能要求等,可以选择最合适的实现。理解这些接口和类的区别,能够帮助开发者编写更高效、更...

    集合框架总结图

    通过深入学习和理解这个集合框架总结图,开发者能够更好地掌握Java集合框架的核心原理,提高代码质量和效率,解决各种数据管理问题。无论是在面试准备还是实际项目开发中,这都是一份不可或缺的参考资料。

    Java集合框架的知识总结.doc

    本篇文章将对Java集合框架进行深入的总结,包括其核心接口、类以及常用方法。 1. **集合框架概述** Java集合框架的核心接口主要有两个:`Collection`和`Map`。`Collection`接口是所有单值容器的基接口,如`List`、...

Global site tag (gtag.js) - Google Analytics