package collectionSort;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import java.util.Map.Entry;
/*
* Map : 实现按值排序
* Set : 实现按其中的元素的长度从大到小排序
* List: 实现按其中的元素的长度从小到大排序
*
*/
public class HashMapSort {
private Map<String , Double> hashMap ;
private Set<String> set;
private List<String> list;
public HashMapSort(){
this.hashMap = new HashMap<String,Double>();
this.hashMap.put("1", 2.0);
this.hashMap.put("2", 1.0);
this.hashMap.put("3", 3.0);
this.hashMap.put("4", 5.0);
this.hashMap.put("5", 33.0);
this.hashMap.put("6", 344.0);
this.hashMap.put("7", 36.0);
this.hashMap.put("8", 33.0);
this.hashMap.put("9", 322.0);
this.set = new HashSet<String>();
this.set.add("");
this.set.add("#");
this.set.add("##");
this.set.add("###");
this.set.add("####");
this.set.add("#####");
this.set.add("######");
this.set.add("#######");
this.set.add("########");
this.list = new ArrayList<String>();
this.list.add("");
this.list.add("#");
this.list.add("##");
this.list.add("###");
this.list.add("####");
this.list.add("#####");
this.list.add("######");
this.list.add("#######");
this.list.add("########");
}
@SuppressWarnings("unchecked")
public static void main(String[] args) {
HashMapSort hashMapSort = new HashMapSort();
Set<Entry<String,Double>> entrySet = hashMapSort.hashMap.entrySet();
Set<Entry<String,Double>> treeSet = new TreeSet(new Comparator<Entry<String,Double>>(){
public int compare( Entry<String , Double> o1, Entry<String,Double> o2) {
return (int) (o2.getValue()-o1.getValue());
}
});
for(Entry<String , Double> entry: entrySet){
treeSet.add(entry);
}
System.out.println(treeSet);
System.out.println("+++++++++++++++++++++++++++++++++++++++分割线+++++++++++++++++++++++++++++++++++");
Set<String> treeSet1 = new TreeSet(new Comparator<String>(){
public int compare(String o1, String o2) {
return o1.length()-o2.length();
}
});
for(String s: hashMapSort.set){
treeSet1.add(s);
}
System.out.println(treeSet1);
System.out.println("+++++++++++++++++++++++++++++++++++++++分割线+++++++++++++++++++++++++++++++++++");
Collections.sort(hashMapSort.list,new Comparator<String>(){
public int compare(String o1, String o2) {
return o2.length() - o1.length();
}
});
System.out.println(hashMapSort.list);
}
}
运行结果:
引用
[6=344.0, 9=322.0, 7=36.0, 5=33.0, 4=5.0, 3=3.0, 1=2.0, 2=1.0]
+++++++++++++++++++++++++++++++++++++++分割线+++++++++++++++++++++++++++++++++++
[, #, ##, ###, ####, #####, ######, #######, ########]
+++++++++++++++++++++++++++++++++++++++分割线+++++++++++++++++++++++++++++++++++
[########, #######, ######, #####, ####, ###, ##, #, ]
分享到:
相关推荐
// java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...
- `size()`:返回集合中元素的数量。 - `isEmpty()`:判断集合是否为空。 - `clear()`:清空集合中的所有元素。 ##### 2.2 迭代器 迭代器(Iterator)接口用于遍历集合中的元素,它是集合框架的一部分,提供了一种...
根据给定文件的信息,我们可以详细地探讨一下Java中几种主要的集合容器——List、Set以及Map的区别,并且深入了解它们各自的特性和应用场景。 ### 一、List #### 1. ArrayList - **特点**:`ArrayList`是基于动态...
迭代器(Iterator)是用来遍历集合中元素的一种方式。`Collection`接口提供了`iterator()`方法,用于获取迭代器。 ```java Iterator iterator = collection.iterator(); while (iterator.hasNext()) { Object ...
List中的元素可以通过索引来访问。 ##### 1.3.2 常用方法 - `get(int index)`:返回指定位置的元素。 - `set(int index, E element)`:将指定位置的元素设置为新值。 - `add(int index, E element)`:在指定位置...
在这个主题中,我们将深入探讨四个关键的容器:vector、list、map以及pair,它们都是STL中的重要组成部分。 1. **vector**: - `vector`是一种动态数组,允许在任何位置插入和删除元素。它的元素是连续存储的,...
Java集合排序及java集合类详解(Collection、List、Map、Set) Java 中的集合框架是 Java 语言中最重要和最常用的部分之一。它能够帮助开发者更方便地处理和存储数据,从而提高编程效率和程序的可读性。本文将详细...
- **容器的分类**:Java集合框架主要分为两大类,即List(列表)和Set(集),以及一种特殊类型Map(映射)。List保持元素的顺序,并允许重复元素;Set不允许有重复元素,且不保证元素的顺序;Map则存储键值对,键...
本文将深入探讨Java集合框架,包括Collection、List、Set和Map四大接口,以及它们的实现原理和排序方法。 **1. 集合框架概述** 集合框架是一组接口和类,用于存储、管理和操作对象的容器。这些接口和类为开发者...
本文将深入探讨集合框架的各个组成部分,包括Collection、List、Set和Map,以及它们的特点、常用方法和实现原理。 1. 集合框架概述 集合框架是一组接口和类,它们为数据存储提供了统一的接口和实现。这些接口和类...
本文将深入探讨Java集合框架的四大核心组件:`Collection`、`List`、`Map`和`Set`,以及它们的排序方法。 ### 1. 集合框架概述 #### 1.1.1 容器简介 在Java中,容器(Containers)是用来存储和管理对象的结构。...
根据提供的文档信息,本文将详细解析并发容器(Map、List、Set)的实战应用及其原理。并发容器在Java多线程环境下发挥着至关重要的作用,它们的设计旨在解决非线程安全容器在高并发场景下的性能瓶颈问题。接下来,...
- **size()**:返回集合中元素的数量。 - **isEmpty()**:如果此集合不包含任何元素,则返回true。 ##### 2.2 迭代器 迭代器(Iterator)是一种访问集合元素的方式,它提供了一种遍历集合的方法。使用迭代器可以...
集合框架包括多个接口和类,如Collection、List、Set和Map,它们各自有不同的特性和用途。 1. **集合框架概述** 集合框架是Java中用于存储和管理对象的统一框架。它定义了一系列接口,如Collection、List、Set和...