gpt4 book ai didi

java - java中如何同时对两个列表进行排序?

转载 作者:行者123 更新时间:2023-12-01 22:07:10 24 4
gpt4 key购买 nike

我有两个列表:1.用言语2. 各频率计数

现在我想按降序对两个列表进行排序,以便第一个列表中的单词索引分别与包含频率计数的第二个列表的索引相匹配。

添加功能:

    public String[] process() throws Exception
{

String[] ret = new String[20];
int c=0;

BufferedReader br = new BufferedReader(new FileReader(inputFileName));
String line = br.readLine();
List<String> result = new ArrayList<String>();
List<Integer> sorted = new ArrayList<Integer>();
List<String> key= new ArrayList<String>();
List<String> new_list = new ArrayList<String>();
int x=0;
while(line!=null){
StringTokenizer st = new StringTokenizer(line,delimiters);
String token = "";
while (st.hasMoreTokens()) {
token = st.nextToken();
//System.out.println(token);
if(token!=null)
{
//System.out.println(token);
result.add( x,token.toLowerCase());

//System.out.println("Key is" + x + "\t" + result.get(x));
x++;
}
}
line=br.readLine();
}
for(int w =0;w<x;w++){
c=0;
String copy=result.get(w);
int i;
for(i =0;i<stopWordsArray.length;i++){
if(copy.compareTo(stopWordsArray[i])==0){
c=1;
break;
}
}
if(c==0){
new_list.add(copy);
}
}
if(c==0){

Map<String, Integer> map = new HashMap<String, Integer>();
for (String temp : new_list) {
Integer count = map.get(temp);
map.put(temp, (count == null) ? 1 : count + 1);
}

int i=0;
int sort = 0;
String key1 = "";
for (Map.Entry<String, Integer> entry : map.entrySet()) {
sort = entry.getValue();
key1 = entry.getKey();
sorted.add(i,sort);
key.add(i,key1);

i++;
}
Integer maxi= Collections.max(sorted);
System.out.println(maxi);
Integer value = sorted.indexOf(maxi);
System.out.println(value);
System.out.println("Word is:" + key.get(value));

}
return ret; }

这里排序的是一个包含单词频率的列表,键是包含单词的列表。

最佳答案

一种选择是创建一个具有两个成员的类:单词和频率。创建 Comparator或实现Comparable根据频率排序,然后实现 toString() 来按照您喜欢的方式打印它。

关于java - java中如何同时对两个列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32489328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com