java entry

我希望要一个ArrayList<Entry>,类似C++中的pair,

可是Map.Entry是个接口,不能实例化,能够像以下这样写

HashMap<Integer, Integer> G = new HashMap<Integer,Integer>();
G.put(1, 9); G.put(4, 6); G.put(2, 8);G.put(3, 7);
ArrayList<Map.Entry<Integer, Integer>> arrayList = new
        ArrayList<Map.Entry<Integer, Integer>(G.entrySet());
ArrayList<Map.Entry<Integer, Integer>> arrayList = new
    ArrayList<Map.Entry<Integer, Integer>>();
arrayList.add(new AbstractMap.SimpleEntry(1, 9));

Map<String, Integer> map = new HashMap<String, Integer>();
map.put("d", 2);
map.put("c", 1);
map.put("b", 1);
map.put("a", 3);

List<Map.Entry<String, Integer>> infoIds =
    new ArrayList<Map.Entry<String, Integer>>(map.entrySet());

//排序前
for (int i = 0; i < infoIds.size(); i++) {
    String id = infoIds.get(i).toString();
    System.out.println(id);
}
//d 2
//c 1
//b 1
//a 3

//排序
Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() {
    public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
        //return (o2.getValue() - o1.getValue());
        return (o1.getKey()).toString().compareTo(o2.getKey());
    }
}); 

//排序后
for (int i = 0; i < infoIds.size(); i++) {
    String id = infoIds.get(i).toString();
    System.out.println(id);
}
//依据key排序
//a 3
//b 1
//c 1
//d 2
//依据value排序
//a 3
//d 2
//b 1
//c 1
List<Map.Entry<String,Double>> termls = new ArrayList<Map.Entry<String,Double>>();
			for(String s: tf.get(i).keySet()) {
				termls.add(new AbstractMap.SimpleEntry(s, tf.get(i).get(s)*1.0*Math.log10(count*1.0/df.get(s))));
			}
			Collections.sort(termls, new Comparator<Map.Entry<String, Double>>(){
				public int compare(Map.Entry<String, Double> o1,Map.Entry<String, Double> o2){
					return(o2.getValue().compareTo(o1.getValue()));
				}

			}
			);
			System.out.println("line " + (i+1));
			for (int ind = 0; ind < termls.size(); ++ind){
				System.out.print(termls.get(ind).toString()+"  ");
			}
			System.out.println();
时间: 2024-08-25 11:53:31

java entry的相关文章

Java Entry使用

参考: http://blog.csdn.net/sunmenggmail/article/details/8952712 http://www.cnblogs.com/fstang/archive/2013/04/20/3032097.html 我希望要一个ArrayList<Entry>,类似C++中的pair对象,但是Map.Entry是个接口,不能实例化,可以像下面这样写 /**     * 选取连续性属性列和因变量列的共2列的数据————根据连续型属性的列索引——要提示因变量只能有1

Java 笔记 -HashMap

HashMap使用的数据结构,专业术语"链表散列",代码实 /** * 定义了一个Entry的数组用来存储数据. */ transient Entry[] table; ```java /** * Entry是内部定义的类 */ static class Entry<K,V> implements Map.Entry<K,V> { /** * 定义了两个常量key,就是HashMap的key * value,key对应的value * next,下一个Entry

【Spring实战】—— 7 复杂集合类型的注入

之前讲解了Spring的基本类型和bean引用的注入,接下来学习一下复杂集合类型的注入,例如:List.Set.Map等. 对于程序员来说,掌握多种语言是基本的技能. 我们这里做了一个小例子,程序员们是一个Bean实例,而掌握的编程语言则是放入一个集合类型中进行注入. 简单的来说: List是一种按照序号标识的集合, Set与List相似但是元素不允许重复, Map则是一种自定的键值对,键值都可以是任意的类型. Bean的实现类 public class Programmer { public

不基于框架(spring) 的方法监控技术

问题描述 为了方便对Java代码执行效率调优,目前已开发了基于spring aop方式的各函数执行监控. 但其缺点是必须依赖于spring,对于非spring管控的对象则无法监控. 期待解决思路 期望可以开发出不依赖于spring的监控,可考虑从classloader .jvm .jmx等底层技术去实现不依赖于第三方框架的解决方案 问题解决责任人 问题提出者:苏印 问题解决责任人:苏印 王加平 王伟 余波 Create by Ian.Su 20170804 解决方案如下 技术方案: JVM TI

The main concepts

The MVC application model A Play application follows the MVC architectural pattern applied to the web architecture. This pattern splits the application into separate layers: the Presentation layer and the Model layer. The Presentation layer is furthe

java Map及Map.Entry详解及用途

Map是java中的接口,Map.Entry是Map的一个内部接口. Map提供了一些常用方法,如keySet().entrySet()等方法. keySet()方法返回值是Map中key值的集合:entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry. Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>.它表示Map中的一个实体(一个key-value对).接口中有getKey(),getValue方法. 由以上可以得出,遍历

java Map及Map.Entry详解

Map是java中的接口,Map.Entry是Map的一个内部接口. Map提供了一些常用方法,如keySet().entrySet()等方法. keySet()方法返回值是Map中key值的集合:entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry. Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>.它表示Map中的一个实体(一个key-value对).接口中有getKey(),getValue方法. 由以上可以得出,遍历

Java .classpath文件Classpath entry org.maven.eclipse.MAVEN2_CLASSPATH_CONTAINER will not be exported or published异常解决办法

Classpath entry org.maven.eclipse.MAVEN2_CLASSPATH_CONTAINER will not be exported or published 在实际用Maven构建Java Web项目开发过程中,有时候会出现上述情况的警告,如果不解决这个警告,就会在启动Web服务器的时候抛出无法加载Maven管理的第三方jar包的异常. 所以,要解决上面的问题主要包含以下几个步骤: 1.首先在项目的根目录找到.classpath文件,然后打开该文件,找到以下标签内

Java集合Map接口与Map.Entry学习

Java集合Map接口与Map.Entry学习 Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs).该接口描述了从不重复的键到值的映射. (1) 添加.删除操作: Object put(Object key, Object value): 将互相关联的一个关键字与一个值放入该映像.如果该关键字已经存在,那么与此关键字相关的新值将取代旧值.方法返回关键字的旧值,如果关键字原先并不存在,则返回null Object remove(Object