标签: treemap

我如何使用TreeMap java?

我一直在写这行:

Map s_AvailableGameTables = Collection.synchronizedMap(new TreeMap());
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:找不到符号
符号:方法synchronizedMap(java.util.TreeMap)location:interface java.util.Collection

虽然我写了

import java.util.*;
import java.util.TreeMap;
import java.util.Collections;
import java.util.Map;  
Run Code Online (Sandbox Code Playgroud)

这是什么原因?
谢谢

java compiler-errors treemap

2
推荐指数
1
解决办法
795
查看次数

如何在Scala中将Java Collection [Int]转换为Array [Int]

我有一个java.util.Treemap[Long, Int]Scala.我需要做的是将Treemap中的值转换为Array [Int].

我可以得到一个Iterator[Int]Collection[Int]来自TreeMap,但我不知道如何将这些转换为Array[Int].

任何建议,将不胜感激.

java scala treemap

2
推荐指数
1
解决办法
2648
查看次数

用于创建HashMap和TreeMap对象的不同语法

通常,当您创建一个对象时,您在前面提供了相同的类型,如:

Scanner scanner = new Scanner(System.in);
Run Code Online (Sandbox Code Playgroud)

但声明一个HashMap对象和TreeMap遵循这样的不同语法.

Map m1 = new HashMap();
SortedMap sm = new TreeMap();
Run Code Online (Sandbox Code Playgroud)

是什么原因?我问我的教授.但他不知道答案.

java object hashmap treemap

2
推荐指数
1
解决办法
5955
查看次数

使用Date作为密钥Java的Treemap

能够搜索TreeMap<Date, String>诸如此类的密钥的正确方法是NavigableMap<Date, String>什么?我希望在特定月份检查并输出那个月的所有人?

例如,如果它如下所示,我将如何能够搜索所有关键二月份的人?

Date date1 = dateformat.parse("8 January 2013");
Run Code Online (Sandbox Code Playgroud)

java date treemap

2
推荐指数
1
解决办法
5160
查看次数

在一段时间内将ArrayList添加到TreeMap

我正在从数据库中的表中检索数据并将整行添加到a TreeMap.

我正在使用以下代码:

ArrayList<String> listaValores = new ArrayList();
TreeMap<Integer, ArrayList> tmValores = new TreeMap<>();
Run Code Online (Sandbox Code Playgroud)

(......)

    while (rs.next()) 
    {
        listaValores.clear();
        for(int i=2; i<=ncolunas; i++)
        {
            listaValores.add(rs.getString(i));
        }
        tmValores.put(rs.getInt(1), listaValores);   
    }
Run Code Online (Sandbox Code Playgroud)

我的TreeMap键被很好地插入,但是值总是作为SELECT*FROM Table查询的结果重复为最后一行的值.

所以,如果我的表是:

id | name | last name | 
1  | joe  | lewis     | 
2  | mark | spencer   | 
3  | mike | carter    | 
4  | duke | melvin    |
Run Code Online (Sandbox Code Playgroud)

我的TreeMap包含:

1=> duke, melvin  
2=> duke, melvin  
3=> duke, melvin  
4=> duke, …
Run Code Online (Sandbox Code Playgroud)

java arraylist treemap

2
推荐指数
1
解决办法
5668
查看次数

Java无法使用Comparators序列化包含TreeMaps的对象

我有一个相当大的项目(大学的OOP课程):一个学校注册,学生可以看到他们的成绩,教师可以增加成绩等等.

"base"类是一个包含所有使用的类(Java)的单例,例如用户数组,类(如在学校类中)和将classess和教师关联到课程的TreeMap.

我想序列化这个基类(Central),以便保存修改后的数据.问题是我得到了这个例外

java.io.NotSerializableException: liceu.Central$1
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:440)
at java.util.TreeMap.writeObject(TreeMap.java:2265)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at liceu.Main.main(Main.java:31)
Run Code Online (Sandbox Code Playgroud)

我的所有类都实现了Serializable,它们没有瞬态或静态字段(单例除外,它具有实例变量和getInstance方法作为静态).

因为发布会有很多代码(我会冒着通过在提交之前发布它来使我的作业无效),我试图通过尝试隔离错误来进行概念验证.

public class Central implements Serializable
{
    private ArrayList <User> users;
    private ArrayList <Class> classess;
    private TreeMap <Course, TreeMap <Class, Professor>> reunite;
    private static Central instance = null;

    private Central()
    {
        users = new ArrayList<>();
        classess = …
Run Code Online (Sandbox Code Playgroud)

java serialization exception treemap notserializableexception

2
推荐指数
2
解决办法
5640
查看次数

一种快速的方法来检查两个集合是否包含至少一个相同的元素

我有两个TreeMap,我想检查它们是否至少包含一个相同的键(这些键是字符串)。因此,我使用两个循环进行比较:

boolean found = false;
for(String key1 : map1.keySet()){
    for(String key2 : map2.keySet()){
        if(key1.equals(key2)){
            found = true;
            break;
        }
    }
    if(found){
        break;
    }
}
if(found){
    someFunction(map1, map2);
}
Run Code Online (Sandbox Code Playgroud)

因为我有500,000个TreeMap(每个约有1000个键),并且我想对照每个地图检查每个地图,所以需要很长时间。有谁知道更快的解决方案?

*编辑:每当我发现两个映射至少有一个相同的键时,我想调用“ someFunction()”方法。我认为在所有案例中> 90%found == false

java set treemap

2
推荐指数
1
解决办法
1316
查看次数

Hashmaps,Treemaps和LinkedHashmaps如何在Java中工作?

我对地图有各种疑问:

  1. 迭代Hashmap时,无法保证迭代顺序.那为什么呢?
  2. 为什么Hashmaps比Treemaps更快?
  3. LinkedHashMaps如何运作,他们如何维护订单?是因为它们有一个双向链表,其中包含有关在条目之前和之后存储哪个条目的信息?

我一直在阅读API文档,但由于我是初学者,在编程方面我很难理解它.

java hashmap treemap linkedhashmap

2
推荐指数
1
解决办法
225
查看次数

由于并发访问,TreeMap中是否存在此空指针异常?

我知道TreeMap不是线程安全的.我正在尝试将TreeMap与ConcurrentSkipListMap进行比较.我使用的代码如下所示,我想确定我得到的错误是由于TreeMap不是线程安全而不是因为其他一些.

java中java.util.TreeMap.fixAfterInsertion(TreeMap.java:2127)的java.util.TreeMap.rotateLeft(TreeMap.java:2060)中的线程"pool-1-thread-52"java.lang.NullPointerException中的异常. util.TreeMap.put(TreeMap.java:574)位于java.util.concurrent.ThreadPoolExecutor $的java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)的ThreadTestTreeMap $ 1.run(ThreadTestTreeMap.java:39) java.lang.Thread.run上的Worker.run(ThreadPoolExecutor.java:615)(Thread.java:745)

import com.google.common.collect.Ordering;
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentSkipListMap;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

public class ThreadTestTreeMap {
    public static Map<String, Object> map;
    public static int THREADS =  100;
    public static long averageTime = 0;

public static void main(String args[]) throws InterruptedException {
    for (int i = 0; i < 1; i++) {
        map = new TreeMap<>(Ordering.natural());
//            map = new ConcurrentSkipListMap<>(Ordering.natural());

        long time = System.nanoTime();
        ExecutorService service = …
Run Code Online (Sandbox Code Playgroud)

java nullpointerexception treemap non-thread-safe

2
推荐指数
1
解决办法
1579
查看次数

使用TreeMap作为Person对象类中的属性

编写如下代码是错误的做法吗?我希望能够在我的人员类中存储一封电子邮件,其中还包含电子邮件类型(工作,个人等).我决定使用TreeMap.我知道所有变量都是私有的并使用getter和setter来操作它们是一种好习惯,但是通过直接使用TreeSet方法而不是我自己的Person类来操作我的TreeSet是错误的吗?换句话说,这是一种有效的可接受的方式吗?代码似乎工作正常.

public class Person {
  private String firstName;
  private String lastName;
  private String note;
  TreeMap<String, String> phoneNum = new TreeMap<String, String>();

  // Assume constructor method contains firstName & lastName and there are
  // getters and setters for both
}

public class MainDriver {
  public static void main(String[] args) {
    Person p1 = new Person("John", "Smith");

    p1.phoneNum.put("jsmith@gmail.com", "School");
    p1.phoneNum.put("jsmith19@gmail.com", "Personal");

    Person p2 = new Person("Sam", "Johnson");

    p2.phoneNum.put("samjohn@gmail.com", "Personal");
    p2.phoneNum.put("samjohnson", "Work");

    System.out.println(p1.phoneNum);
    System.out.println(p2.phoneNum);
  }
}

Output:
{jbillingham@gmail.com=Personal, jebillingham3@gmail.com=School}
{samsamyoussef=Work, samyou@gmail.com=Personal}
Run Code Online (Sandbox Code Playgroud)

java class treemap

2
推荐指数
1
解决办法
165
查看次数