有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java需要输入有关我的程序在字符串中查找重复项的效率的信息

我开发了一个java程序,用于检查字符串是否具有所有唯一字符。 我正在把它列下来。如果我能得到有关该项目效率的信息,以及改进该项目所需的任何修正,我将不胜感激。提前谢谢

package com.string.duplicatechars;

import java.util.HashMap;
import java.util.Map;

public class CheckForDuplicateChars {

        /**
         * @param args
         */
        public static void main(String[] args) {
                String sampleString = "abcdabxyz";
                boolean allUniqueCharacters = allUniqueCharacters(sampleString);
                System.out.println("Are all characters unique: "+allUniqueCharacters);
        }

        public static boolean allUniqueCharacters(String sampleString) {
                boolean allUniquCharacters = true;
                char[] charArrForString = sampleString.toCharArray();
                Map<Character, Boolean> resultHashMap = new HashMap<Character, Boolean>();

                for(char ch: charArrForString){
                        Boolean isAlreadyPresent = (Boolean)resultHashMap.put(new Character(ch), new Boolean(true));

                        if(isAlreadyPresent != null){
                                if(isAlreadyPresent.booleanValue() == true) {
                                        System.out.println("Got repeated character: "+ch);
                                        allUniquCharacters = false;
                                }
                        } else {
                                System.out.println("Character "+ch+ " is being iserted first time");
                        }
                }

                return allUniquCharacters;
        }
}

共 (1) 个答案

  1. # 1 楼答案

    那么:

    char[] charArrForString = sampleString.toCharArray();
    HashSet s = new HashSet(Arrays.asList(charArrForString));
    
    return (s.size() == charArrForString.length);