java.util.Set<E>:
特点:
1.Set提供一个无序的集合
2.不能有重复的对象
3.无法通过索引取得特定的对象,只能通过迭代器取出对象(详见下面代码)
常见实现子类:
HashSet、TreeSet
常用方法:
boolean |
add(E e) 如果 set 中尚未存在指定的元素,则添加此元素(可选操作)。
|
void |
clear() 移除此 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) 返回列表中指定位置的元素。
|
代码示例:
功能:同以上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 。
|
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;
}
}
分享到:
相关推荐
### Java集合框架总结 #### 一、Java集合框架概述 Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和...
本文档为本人学习 java 集合框架期间的学习总结笔记,希望对新学习的朋友有所帮助和参考价值。本人java 开发时间不是太长,可能存在不完善或不对之处,欢迎指正!
### Java集合框架使用总结 #### 前言 本文旨在为读者提供关于Java集合框架的概览性介绍,帮助理解其整体架构与设计理念。对于希望深入掌握特定接口或类使用方法的学习者,建议查阅官方提供的Java API文档。 #### ...
根据提供的文档内容,文件是关于Java集合框架的面试题知识点总结。以下是Java集合框架的知识点详述: Java集合框架主要包括Collection接口和Map接口两大分支。Collection接口主要包括List、Set以及Queue三个子接口...
JAVA集合框架,java框架总结,java集合框架,java集合框架学习,java集合框架类
总结来说,理解数据结构和掌握Java集合框架是每个Java开发者必备的技能。它们不仅影响代码的可读性和可维护性,也直接影响到程序的执行效率。熟悉这些概念并能灵活运用,将使你在编程实践中更加游刃有余。通过阅读如...
根据提供的信息,我们可以总结并详细解释关于Java集合框架的一些关键知识点。这些知识点主要涉及Java集合框架中的各种数据结构,如List、Set、Map等,并深入探讨了它们在实际应用中的特性与用途。 ### Java集合框架...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了一组高效的数据结构和算法,使得开发者可以方便地管理和操作数据。本文主要围绕Java集合框架的核心概念、接口和类进行阐述。 首先,集合框架是Java中用于...
"Java集合框架面试题" Java 集合框架是 Java 语言中的一组预定义类和接口的集合,用于存储和操作数据。下面是 Java 集合框架的知识点总结: 1. Java 集合类主要有两大分支:Collection 接口和 Map 接口。...
Java 集合框架知识点总览 Java 集合框架是 Java 语言中提供的一种处理集合的机制,它提供了一种灵活、可靠、可扩展的方式来存储和操作对象的集合。在本章节中,我们将详细介绍 Java 集合框架的主要组成部分、使用...
总结来说,Java集合框架提供了丰富的数据结构选择,根据实际需求,如是否需要排序、是否关心元素顺序、是否需要线程安全、性能要求等,可以选择最合适的实现。理解这些接口和类的区别,能够帮助开发者编写更高效、更...
通过深入学习和理解这个集合框架总结图,开发者能够更好地掌握Java集合框架的核心原理,提高代码质量和效率,解决各种数据管理问题。无论是在面试准备还是实际项目开发中,这都是一份不可或缺的参考资料。
本篇文章将对Java集合框架进行深入的总结,包括其核心接口、类以及常用方法。 1. **集合框架概述** Java集合框架的核心接口主要有两个:`Collection`和`Map`。`Collection`接口是所有单值容器的基接口,如`List`、...