RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-467149

Alex_Lynx's questions

Martin Hope
Alex_Lynx
Asked: 2022-07-17 02:59:25 +0000 UTC

用 HashMap 值填充空数组

  • 0

再会!作为培训,我正在编写一个计票程序。

这是代码:

public class Kata_7_3 {
    public static String getWinner(final List<String> listOfBallots) {
        //Your code
        int votesGiven = listOfBallots.size();// Кол-во проголосовавших

        String winnerName = "";

        ArrayList<String> uniqueNamesOfCandidates = candidates(listOfBallots); // Получение списка уникальных имен

        HashMap<String,Integer> resultOfVote = new HashMap<>();// Мапа с кандидатами и голосами

        for(String name : uniqueNamesOfCandidates){
            int votes = 0;
            for (int j = 0;j< listOfBallots.size();j++){
                if(Objects.equals(name, listOfBallots.get(j))){
                    votes++;
                }
                resultOfVote.put(name,votes);
            }
        }
        int [] valVotes = new int[resultOfVote.size()];
        
        for (HashMap.Entry<String,Integer> entry : resultOfVote.entrySet()){
            Arrays.fill(valVotes, entry.getValue());
        }
        System.out.println(Arrays.toString(valVotes));
        return winnerName;
    }

    /**
     * Метод получает на вход параметр List ballots, и возвращает список уникальных кандидатов
     * @param ballots Бюллетени. Список, где указаны кандидаты. Сколько раз указан кандидат в списке,
     *                столько за него отдано голосов
     * @return возвращает ArrayList кандидатов
     */
    public static ArrayList<String> candidates (List<String>ballots){
        Set<String> candidates = new HashSet<>(ballots);
        ArrayList<String> listOfNamesOfCandidates = new ArrayList<>(candidates);
        return listOfNamesOfCandidates;
    }
}

这段代码的逻辑是:

  1. 在输入中,我们得到以下格式的列表:“A”、“A”、“A”、“B”、“B”、“B”、“Safa”、“C”、“C”、“C” ","C","C","C"

  2. 然后在候选人方法中,我们得到一个候选人列表

  3. 之后,我们创建一个包含名称和票数的地图

然后我必须计算谁赢了。我想在一个数组中显示值,并且已经在数组中进行了计算,然后通过搜索键值,显示获胜者。

这就是我在这里尝试做的事情:

int [] valVotes = new int[resultOfVote.size()];

for (HashMap.Entry<String,Integer> entry : resultOfVote.entrySet()){
    Arrays.fill(valVotes, entry.getValue());
}
System.out.println(Arrays.toString(valVotes));
return winnerName;

但是,只有一个,即地图中最后一个候选人的投票数被添加到数组中。结果是这样的: [1, 1, 1, 1]

告诉我如何用地图中的值填充数组,以便值对应于每个候选者。类型:[4, 7, 1, 5]

java массивы
  • 1 个回答
  • 41 Views
Martin Hope
Alex_Lynx
Asked: 2022-08-08 22:49:20 +0000 UTC

两个数字之间的随机选择[关闭]

  • -2
关闭 这个问题是题外话。目前不接受回复。

仅当您在提出问题之前尝试自己解决问题时,才允许将学习问题作为问题。请编辑问题并指出究竟是什么导致您难以解决问题。例如,请提供您在尝试解决问题时编写的代码

3 个月前关闭。

改进问题

今天是个好日子!有一个数字数组(里面的所有值只能是1到3)

new int[]{3,3,2,3,3,2,2,3,2,2,1,1,1,1}, вот например такой

有必要更改数组单元格 [i] 的值,以使每个 [i] 更改为不同的有效值。例如,如果第一个值 i=3,则应将其更改为 1 或 2。以此类推。

告诉我怎么做?也就是说,实际上我需要从两个可能的值中随机选择一个

java случайные-числа
  • 2 个回答
  • 52 Views
Martin Hope
Alex_Lynx
Asked: 2022-06-18 12:43:10 +0000 UTC

为给定的 int 值重复一段代码。请帮我解决我的加密问题:)

  • -1

今天是个好日子!我正在解决一个问题,其本质如下:该方法被赋予一个字符串String text和一个数字int n。所有这些数据都以最终状态传输。有必要将文本中的所有偶数字符与奇数字符分开,并按照n中给出的次数执行此操作。如果 n=0 或 -n,则什么也不做。

例如,“这是一个测试!” 对于 n=1 ---> “hsi etTi 坐下!” , 并且对于 n=2 *"s eT ashi tist!"* 等等。容我们说,这种排列应该是 n 次。

经过一番头脑风暴,我想出了以下几点:

public static String encrypt(final String text, final int n){

        String result ="";

        int t = n;// временная переменная t для подсчета кол-ва проходов шифрования

        Character [] textArr = new Character[text.length()];
            for (int i = 0;i<text.length();i++){
                textArr[i] = text.charAt(i);
            }

        List<Character> charArr = Arrays.asList(textArr);

        List<Character> oddCharArr = new ArrayList<>();
        List<Character> evenCharArr = new ArrayList<>();

        List<Character> tempCharArr = new ArrayList<>(charArr);

 


            for (int i = 0; i < tempCharArr.size(); i++) {
                if (i % 2 == 0) {
                    evenCharArr.add(tempCharArr.get(i));
                } else oddCharArr.add(tempCharArr.get(i));
                tempCharArr.addAll(oddCharArr);
                tempCharArr.addAll(evenCharArr);
            }

这个想法是将字符串分成一个数组Char,然后遍历这个数组并将所有偶数和奇数字符分成两个额外的字符。大批。之后,将最终数组转换为字符串。就我而言,我是通过List来完成的。

这种改变似乎奏效了。数组被正确收集,但只收集一次。

试图用while来做,但没有成功。告诉我,我怎样才能更好、更有效地执行此操作n次?

紧接着的问题是赶上,在另一种方法中,有必要按原样返回所有内容。告诉我,或者至少提示算法如何做到这一点:)

先感谢您!

UPD(德米特里·阿列克申科):

public static String encrypt(final String text, final int n) {
    String result ="";

    int t = n;// временная переменная t для подсчета кол-ва проходов шифрования
    Character [] textArr = new Character[text.length()];
        for (int i = 0;i<text.length();i++){
            textArr[i] = text.charAt(i);
        }

    List<Character> charArr = Arrays.asList(textArr);
    List<Character> oddCharArr = new ArrayList<>();
    List<Character> evenCharArr = new ArrayList<>();

    List<Character> tempCharArr = new ArrayList<>();

        for (int i = 0; i < charArr.size(); i++) {
            if (i % 2 == 0) {
                evenCharArr.add(charArr.get(i));
            } else oddCharArr.add(charArr.get(i));
        }
    tempCharArr.addAll(oddCharArr);
    tempCharArr.addAll(evenCharArr);
    System.out.println(tempCharArr.toString());


    return result;
}

我希望得到帮助))上面我发布了有效的代码,但只有一次。

现在我们需要让它做这个排列给定的次数。这是我遇到问题的地方。我忍受了一个星期的头,然后陷入了无休止的循环)

你至少能提出实现这一点的最佳方法吗?总的来说很悲伤

java циклы
  • 2 个回答
  • 57 Views
Martin Hope
Alex_Lynx
Asked: 2022-06-09 18:09:57 +0000 UTC

将 long 数转换为 int 数组

  • 0

再会!我用条件解决了一个问题:给定一个随机正数,有必要将这个数的数字以相反的顺序返回到数组中。

为此,我编写了以下代码:

 public static int[] digitize(long n) { ///!!!!!!
    // Code here
    List<Integer> list = new ArrayList<>(DigitsInNumbers(n));
    Collections.reverse(list);
    
    int [] myArr = new int [list.size()];
    for (int i = 0;i<myArr.length;i++){
        myArr[i] = list.get(i);
    }
    return myArr;
}
public static List<Integer> DigitsInNumbers (long number){
    String n = Integer.toString((int)number);
    char [] charArray = n.toCharArray();
    List<Integer> cia = new ArrayList<>();
    for (int i = 0; i<charArray.length;i++){
        int c = Character.getNumericValue(charArray[i]);
        cia.add(c);
    }
    return cia;
}

在测试时,它给出了以下错误:应该使用一些预设的数字:数组首先在元素 [0] 处不同;预期:<0> 但结果:<6>

有时如果数字是,例如,2422044068。它根本不让它运行,并说 Intager number too large。

通常,它适用于 int 值。

请告诉我我在哪里搞砸了:(

先感谢您!

java
  • 1 个回答
  • 10 Views
Martin Hope
Alex_Lynx
Asked: 2022-06-08 22:49:52 +0000 UTC

替换 char[] 数组中的元素

  • 1

大家好!作为培训的一部分,我解决了一个问题。 条件如下:编写一个以String为参数的方法,如果String中的字符重复(例如Balalaika ),则将重复的字符更改为字符')'。也就是说,字母 "a" 和 "l" 将被替换为 ")" 并且你得到"B)))))yk)"。并且所有其他字符都被替换为 "("。结果,你得到"()))))(()"。

为了解决这个问题,我写了如下代码(不要扔拖鞋,我是初学者):

    static String encode(String word){


    char [] arr = word.toCharArray();

    //search for duplicates
    for (int i = 0; i<arr.length;i++){ // Bug
        for(int j=i+1;j<arr.length;j++){
            if (arr[i]==arr[j]){
                arr [i] = ')';
                arr [j] = ')';
            }
        }
    }
    for (int k = 0; k<arr.length;k++){
        if(!(arr[k]==')')){
            arr[k] = '(';
        }
    }

   word = new String(arr);
    return word;
}

它甚至部分有效,但不完全有效。问题是当循环循环时,它会改变两个字符,但如果单词中还有另一个这样的字符,它会跳过它,因为这两个已经被替换并且它们不匹配。告诉我如何解决这个问题?

java
  • 2 个回答
  • 10 Views
Martin Hope
Alex_Lynx
Asked: 2022-05-27 04:16:45 +0000 UTC

如何停止向 ArrayList 写入数据?

  • 0

大家好!我正在学习 Java 并编写条形码扫描仪软件。

该程序被设计成当用户在控制台中输入某些命令时,相应的动作就会发生。

因此,例如,当在控制台中输入单词“仓库”时,控制台中会向用户显示商店中的产品列表。

它是这样实现的:有一个Warehouse.txt文件。它预先包含有关产品的信息,格式如下: 文章、名称、价格 -> 486414、面包、40

程序从文件中读取信息,创建类对象,Product然后将数据写入ArrayList. 方法代码如下:

public static void ListForToday(ArrayList<Product> products) throws IOException {
    BufferedReader storageReader = new BufferedReader(new FileReader ("C:\\Users\\Home PC\\IdeaProjects\\Barcode_reader\\src\\Warehouse.txt"));
    String mainLine = storageReader.readLine();
    while (true){
        String line = storageReader.readLine();
        if (line == null) break;
        String [] cells = line.split("\\s*,\\s*");
        int article = Integer.parseInt(cells[0]);
        String name = cells[1];
        int price = Integer.parseInt(cells[2]);
        products.add(new Product(article, name, price));
    }
}

我们输入单词时的代码"Склад"(位于方法中main):

if (stringScanner.equals("Склад") || stringScanner.equals("склад")) {
    System.out.println("Сегодня в продаже:");
    ListForToday(today);
    for (Product product : today) {
        System.out.println(product);
    }
}

似乎即使是这种恐怖也有效,但是!

"Склад"如果用户再次输入该词,则ArrayList文件中的产品将再次添加。对于每个输入也是如此。

ArrayList第一次输入数据后,如何防止文件被写入?

我不太明白如何修复这个错误。

先感谢您!

java
  • 2 个回答
  • 10 Views
Martin Hope
Alex_Lynx
Asked: 2022-04-28 02:21:42 +0000 UTC

从 try-catch 块返回

  • -1

再会!有以下代码:

Scanner scanner = new Scanner(System.in);
String about = scanner.nextLine();
try {
    if (about.equals("Справка") || about.equals("справка"))
        System.out.println("Справка в разработке");
} catch (Exception i) {
    if (!(about.equals("Справка") || about.equals("справка"))) {
        throw new IllegalArgumentException("Для вызова \"Справки\" необходимо ввести в консоль \"Справка\"");
    }
}

在这里,通过输入的单词,我要么扔掉证书,要么不扔掉证书。

问题如下。如果用户输入了错误的单词并弹出错误消息,我该如何回到控制台中输入并重新开始?

先感谢您!

java
  • 2 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5