小编Edd*_*Edd的帖子

按频率排序字符串数组的最有效方法

我有一个字符串数组:

String[] stringArray = {"x", "y", "z", "x", "x", "y", "a"};
Run Code Online (Sandbox Code Playgroud)

什么是最快/最有效的方式来订购这个更小Collection/按频率的每个String频率的频率顺序?

我虽然关于使用Stringa作为键,HashMap<String,Integer>但这不会按频率排序

我考虑的另一种方法是使用TreeMap<Integer, String[]>带有该整数的字符串列表,但似乎涉及很多检查..

我试图避免使用多个循环如果可能,因为我的String数组将比上面的数组大得多.谢谢!

编辑 我想要的只是能够按频率顺序输出字符串,并且最好能够将该字符串与其在频率中的频率配对,例如两个输出数组:

["x", "y", "z", "a"]
[3,2,1,1]
Run Code Online (Sandbox Code Playgroud)

如果速度不是一个问题,这将是一个非常简单的问题,这就是为什么我在这里问伟大的思想:)

java arrays string mode

6
推荐指数
1
解决办法
8610
查看次数

如何在Java中使用整数向量

我试图通过使用以下方法获得整数向量:

Vector<int> vec =new Vector<int>();
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

令牌"int"上的语法错误,此令牌后预期的维度

我知道Vector只接受对象,

是否有一种简单的方法来获得整数向量而不创建只存储int的对象?

谢谢

java int vector

5
推荐指数
1
解决办法
5万
查看次数

Android:URLConnection.getContentLength()给出不正确的值

我正在尝试使用以下内容获取URL内容的大小:

URLConnection conn = null;
URL url = null;
url = new URL("https://dl.dropboxusercontent.com/u/90210205/Default.html");
conn = url.openConnection();
conn.connect();
InputStream in = new BufferedInputStream(url.openStream());
int fileSize = conn.getContentLength();
System.out.println("File size " + fileSize);
while (in.read() != -1) {
    i++;
}
in.close();
System.out.println("Read " + i + " bytes of a possible " + fileSize);
Run Code Online (Sandbox Code Playgroud)

我正在使用它doInBackground(),AsyncTask并且出于某种原因conn.getContentLength();返回1273它应该返回时10136.

我在常规Java应用程序的Main中使用了上面的代码,并conn.getContentLength();返回正确的10136值.

它为什么不在工作AsyncTask

java android urlconnection http-content-length android-asynctask

5
推荐指数
1
解决办法
1064
查看次数

本机查询加入Spring数据

我上课:

@Entity
public class User {
    @Id
    Long id;
    String name;

    @ManyToMany
    List<Mission> missions;
}

@Entity
public class Mission {
    @Id
    Long id;
    String name;

    @ManyToMany
    List<User> users;
}

public interface MissionRepository extends CrudRepository<Mission, Long> {
    @Query(nativeQuery = true, "select * from mission join user on id = user_id where name = ?1")
    public List<Mission> findByname(String name);
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以在spring数据JPA中使用本机查询联接,以及查询结果是否正确映射到上述示例中的实体中。

有人可以给我看一个完整的例子来给用户。我必须在本例中使用本机查询,但我不确定该工作。

java spring spring-data spring-data-jpa

5
推荐指数
1
解决办法
1万
查看次数

JPA一对一映射与继承:2查询应该是什么

我在实体是一个抽象基类的实体MediaMediaAnalysis实体之间有一对一的关系Media:

新闻报道实体

@Entity
@DiscriminatorValue("N")
public class NewsReport extends Media {

    @Column(name = "BODY", nullable = false)
    private String body;

    NewsReport(){}

    public NewsReport(String title, String link, String author, String body) {
        super(title, link, author);
        this.body= body;
    }

    public String getBody() {
        return body;
    }
}
Run Code Online (Sandbox Code Playgroud)

媒体实体

@Entity
@Inheritance(
        strategy = InheritanceType.SINGLE_TABLE
)
@DiscriminatorColumn(name = "TYPE", length = 1, discriminatorType = DiscriminatorType.STRING)
public abstract class Media {

    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    private Long id;

    @Column(name = "TITLE", …
Run Code Online (Sandbox Code Playgroud)

spring hibernate jpql spring-data-jpa

5
推荐指数
1
解决办法
642
查看次数

Java:两个或更多时间序列相加

我有多个时间序列:

       x
|    date    | value |
| 2017-01-01 |   1   |
| 2017-01-05 |   4   |
|     ...    |  ...  |

       y
|    date    | value |
| 2017-01-03 |   3   |
| 2017-01-04 |   2   |
|     ...    |  ...  |
Run Code Online (Sandbox Code Playgroud)

令人沮丧的是,在我的数据集中,两个系列中并不总是匹配日期.对于缺少一个的情况,我想使用最后一个可用日期(如果没有,则为0).因为2017-01-03我会使用y=3x=1(从之前的日期)得到output = 3 + 1 = 4

我有以下形式的每个时间序列:

class Timeseries {
    List<Event> x = ...;
}

class Event {
    LocalDate date;
    Double value;
}
Run Code Online (Sandbox Code Playgroud)

并把它们读成了一个 List<Timeseries> allSeries

我以为我可以用流来加总它们

List<TimeSeries> allSeries …
Run Code Online (Sandbox Code Playgroud)

java time-series java-stream

5
推荐指数
1
解决办法
141
查看次数

Java:检查String是否在wordlist中的最有效方法

我有一个字符串数组String[] words和一个28000字的单词列表.

我想检查String数组的任何成员是否在WordList中(单词列表在文本文件wordlist.txt中)

什么是最有效的方法?

java string-comparison

4
推荐指数
1
解决办法
4437
查看次数

Android:在Eclipse中打开.hprof文件

我试图通过使用eclipses DDMS视图中的HPROF文件来检查内存泄漏.

我尝试使用MAT来读取保存到磁盘的.hprof,但是出现了错误:

Error opening heap dump 'com.myapp.myapp.hprof'. Check the error log for further details.
Error opening heap dump 'com.myapp.myapp.hprof'. Check the error log for further details.
Unknown HPROF Version (JAVA PROFILE 1.0.3) (java.io.IOException)
Unknown HPROF Version (JAVA PROFILE 1.0.3)
Run Code Online (Sandbox Code Playgroud)

所以我在StackOverflow的另一篇文章中遵循了一个解决方案,它告诉我改变首选项

Android> DDMS> HPROF操作:在Eclipse中查看

但这只是将文件显示为不可读的文本文件: eclipse中的hprof文件

我认为它应该比那更容易理解,所以我做错了什么?

编辑

我在其他帖子中读到了关于使用hprov-conv.exe的东西,我试图打开它,它闪现一个屏幕然后关闭(即使以管理员身份打开)所以我不知道如何使用它.

eclipse memory android hprof

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

在路径上使用Gson

使用简单的Json文件,例如:

{"menu": {
  "id": "file",
  "value": "File",
  "popup": {
    "menuitem": [
      {"value": "New", "onclick": "CreateNewDoc()"},
      {"value": "Open", "onclick": "OpenDoc()"},
      {"value": "Close", "onclick": "CloseDoc()"}
    ]
  }
}}
Run Code Online (Sandbox Code Playgroud)

我希望能够使用路径获取JsonArraynamed menuitem

String path =  "menu.popup.menuitem"
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下方法执行此操作:

public static JsonElement fromString(String json, String path) throws JsonSyntaxException {
        JsonObject obj = GsonBuilder.create().fromJson(json, JsonObject.class);
        String[] seg = path.split(".");
        for (String element : seg) {
            if (obj != null) {
                obj = obj.get(element).getAsJsonObject();
            } else {
                return null;
            }
        }
        return obj
}
Run Code Online (Sandbox Code Playgroud)

与: …

java json jsonpath gson

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

SQL:SQL独家或

我有一个表格:

username | role
---------+------
name1    | internal
name1    | admin
name2    | internal
name3    | admin
name4    | external
Run Code Online (Sandbox Code Playgroud)

我需要找到所有具有"内部"或"管理员"角色但没有两者(基本上是异或)的用户.我怎么能在SQL中这样做?

产生类似于下面的表单的查询将是完美的:

username | internal | admin
---------+----------+-------
name2    | 1        | 0
name3    | 0        | 1
Run Code Online (Sandbox Code Playgroud)

如果它有助于我使用Oracle数据库

sql oracle xor

4
推荐指数
1
解决办法
1723
查看次数