List of usage examples for com.google.common.collect Multimap isEmpty
boolean isEmpty();
From source file:msi.gama.util.GAML.java
public static String getDocumentationOn(final String query) { final String keyword = StringUtils.removeEnd(StringUtils.removeStart(query.trim(), "#"), ":"); final Multimap<GamlIdiomsProvider<?>, IGamlDescription> results = GamlIdiomsProvider.forName(keyword); if (results.isEmpty()) { return "No result found"; }/*from www.j a v a 2 s . co m*/ final StringBuilder sb = new StringBuilder(); final int max = results.keySet().stream().mapToInt(each -> each.name.length()).max().getAsInt(); final String separator = StringUtils.repeat("", max + 6).concat(Strings.LN); results.asMap().forEach((provider, list) -> { sb.append("").append(separator).append("|| "); sb.append(StringUtils.rightPad(provider.name, max)); sb.append(" ||").append(Strings.LN).append(separator); for (final IGamlDescription d : list) { sb.append("== ").append(toText(d.getTitle())).append(Strings.LN) .append(toText(provider.document(d))).append(Strings.LN); } }); return sb.toString(); // }
From source file:org.obiba.onyx.quartz.core.engine.questionnaire.util.QuestionnaireSharedCategory.java
/** * Return true is category associated to the given questionCategory is shared, false otherwise. we use this method if * question associated to questionCategory is not yet linked to the questionnaire. * (QuestionnaireFinder.findSharedCategories do not contains yet the category) * //from w ww.ja va2s . c o m * @param question * @param questionCategory * @param category * @return */ public static boolean isSharedIfLink(final QuestionCategory questionCategory, Questionnaire questionnaire) { QuestionnaireFinder questionnaireFinder = QuestionnaireFinder.getInstance(questionnaire); questionnaire.setQuestionnaireCache(null); Multimap<Category, Question> categoriesFilterName = questionnaireFinder .findCategories(questionCategory.getCategory().getName()); Collection<Category> categories = Collections2.filter(categoriesFilterName.keySet(), new Predicate<Category>() { @Override public boolean apply(Category input) { return input == questionCategory.getCategory(); } }); if (categoriesFilterName.isEmpty() || categories.isEmpty()) { return false; } Collection<Question> questions = categoriesFilterName.get(categories.iterator().next()); Collection<Question> otherQuestions = Collections2.filter(questions, new Predicate<Question>() { @Override public boolean apply(Question input) { return input != questionCategory.getQuestion(); } }); return !otherQuestions.isEmpty(); }
From source file:com.twitter.common.metrics.JvmStats.java
/** * Add a series of system and jvm-level stats to the given registry. *///ww w. j a v a 2s .c om public static void register(MetricRegistry registry) { final MetricRegistry stats = registry.scope("jvm"); final MemoryMXBean mem = ManagementFactory.getMemoryMXBean(); // memory stats final MetricRegistry heapRegistry = stats.scope("heap"); registerMemoryStats(heapRegistry, new MemoryReporter() { @Override public MemoryUsage getUsage() { return mem.getHeapMemoryUsage(); } }); final MetricRegistry nonHeapRegistry = stats.scope("nonheap"); registerMemoryStats(nonHeapRegistry, new MemoryReporter() { @Override public MemoryUsage getUsage() { return mem.getNonHeapMemoryUsage(); } }); // threads final ThreadMXBean threads = ManagementFactory.getThreadMXBean(); final MetricRegistry threadRegistry = stats.scope("thread"); threadRegistry.register(new AbstractGauge<Integer>("daemon_count") { @Override public Integer read() { return threads.getDaemonThreadCount(); } }); threadRegistry.register(new AbstractGauge<Integer>("count") { @Override public Integer read() { return threads.getThreadCount(); } }); threadRegistry.register(new AbstractGauge<Integer>("peak_count") { @Override public Integer read() { return threads.getPeakThreadCount(); } }); // class loading bean final ClassLoadingMXBean classLoadingBean = ManagementFactory.getClassLoadingMXBean(); stats.register(new AbstractGauge<Integer>("classes_loaded") { @Override public Integer read() { return classLoadingBean.getLoadedClassCount(); } }); stats.register(new AbstractGauge<Long>("total_classes_loaded") { @Override public Long read() { return classLoadingBean.getTotalLoadedClassCount(); } }); stats.register(new AbstractGauge<Long>("classes_unloaded") { @Override public Long read() { return classLoadingBean.getUnloadedClassCount(); } }); // runtime final RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean(); stats.register(new AbstractGauge<Long>("start_time") { @Override public Long read() { return runtime.getStartTime(); } }); stats.register(new AbstractGauge<Long>("uptime") { @Override public Long read() { return runtime.getUptime(); } }); //stats.register(new AbstractGauge<String>) // os final OperatingSystemMXBean os = ManagementFactory.getOperatingSystemMXBean(); stats.register(new AbstractGauge<Integer>("num_cpus") { @Override public Integer read() { return os.getAvailableProcessors(); } }); if (os instanceof com.sun.management.OperatingSystemMXBean) { final com.sun.management.OperatingSystemMXBean sunOsMbean = (com.sun.management.OperatingSystemMXBean) os; // if this is indeed an operating system stats.register(new AbstractGauge<Long>("free_physical_memory") { @Override public Long read() { return sunOsMbean.getFreePhysicalMemorySize(); } }); stats.register(new AbstractGauge<Long>("free_swap") { @Override public Long read() { return sunOsMbean.getFreeSwapSpaceSize(); } }); stats.register(new AbstractGauge<Long>("process_cpu_time") { @Override public Long read() { return sunOsMbean.getProcessCpuTime(); } }); } if (os instanceof com.sun.management.UnixOperatingSystemMXBean) { // it's a unix system... I know this! final UnixOperatingSystemMXBean unix = (UnixOperatingSystemMXBean) os; stats.register(new AbstractGauge<Long>("fd_count") { @Override public Long read() { return unix.getOpenFileDescriptorCount(); } }); stats.register(new AbstractGauge<Long>("fd_limit") { @Override public Long read() { return unix.getMaxFileDescriptorCount(); } }); } // mem final List<MemoryPoolMXBean> memPool = ManagementFactory.getMemoryPoolMXBeans(); final MetricRegistry memRegistry = stats.scope("mem"); final MetricRegistry currentMem = memRegistry.scope("current"); final MetricRegistry postGCRegistry = memRegistry.scope("postGC"); for (final MemoryPoolMXBean pool : memPool) { String name = normalizeName(pool.getName()); registerMemoryStats(currentMem.scope(name), new MemoryReporter() { @Override public MemoryUsage getUsage() { return pool.getUsage(); } }); registerMemoryStats(postGCRegistry.scope(name), new MemoryReporter() { @Override public MemoryUsage getUsage() { return pool.getCollectionUsage(); } }); } currentMem.register(new AbstractGauge<Long>("used") { @Override public Long read() { long sum = 0; for (MemoryPoolMXBean pool : memPool) { MemoryUsage usage = pool.getUsage(); if (usage != null) { sum += usage.getUsed(); } } return sum; } }); AbstractGauge<Long> totalPostGCGauge = new AbstractGauge<Long>("used") { @Override public Long read() { long sum = 0; for (MemoryPoolMXBean pool : memPool) { MemoryUsage usage = pool.getCollectionUsage(); if (usage != null) { sum += usage.getUsed(); } } return sum; } }; postGCRegistry.register(totalPostGCGauge); // java 1.7 specific buffer pool gauges Multimap<String, AbstractGauge<Long>> java17gauges = buildJava17Gauges(); if (!java17gauges.isEmpty()) { MetricRegistry bufferRegistry = stats.scope("buffer"); for (String scope : java17gauges.keySet()) { MetricRegistry pool = bufferRegistry.scope(scope); for (AbstractGauge<Long> gauge : java17gauges.get(scope)) { pool.register(gauge); } } } // gc final List<GarbageCollectorMXBean> gcPool = ManagementFactory.getGarbageCollectorMXBeans(); MetricRegistry gcRegistry = stats.scope("gc"); for (final GarbageCollectorMXBean gc : gcPool) { String name = normalizeName(gc.getName()); MetricRegistry scoped = memRegistry.scope(name); scoped.register(new AbstractGauge<Long>("cycles") { @Override public Long read() { return gc.getCollectionCount(); } }); scoped.register(new AbstractGauge<Long>("msec") { @Override public Long read() { return gc.getCollectionTime(); } }); } gcRegistry.register(new AbstractGauge<Long>("cycles") { @Override public Long read() { long sum = 0; for (GarbageCollectorMXBean pool : gcPool) { long count = pool.getCollectionCount(); if (count > 0) { sum += count; } } return sum; } }); gcRegistry.register(new AbstractGauge<Long>("msec") { @Override public Long read() { long sum = 0; for (GarbageCollectorMXBean pool : gcPool) { long msec = pool.getCollectionTime(); if (msec > 0) { sum += msec; } } return sum; } }); }
From source file:org.sonar.java.se.JavaCheckVerifier.java
private static void assertNoIssues(Multimap<Integer, Expectations.Issue> expected, Set<AnalyzerMessage> issues) { assertThat(issues).overridingErrorMessage("No issues expected but got: " + issues).isEmpty(); // make sure we do not copy&paste verifyNoIssue call when we intend to call verify assertThat(expected.isEmpty()) .overridingErrorMessage("The file should not declare noncompliants when no issues are expected") .isTrue();//from w ww. j a va 2 s. c o m }
From source file:moa2014.MOA2014.java
public static void principal(int[][] matrizatual) { Multimap<Integer, String> open_list = TreeMultimap.create(); HashMap<String, Estado> processados = new HashMap(); int difmatrizatual = diferencaMatriz(matrizatual); String stringmatriz = transformaMatrizString(matrizatual); open_list.put(difmatrizatual, stringmatriz); Estado estadoatual = new Estado(matrizatual, 0); processados.put(stringmatriz, estadoatual); int counter = 1; while (!open_list.isEmpty()) { System.out.println("Arvores processadas: " + counter); Iterator iterator = open_list.keySet().iterator(); /*/*from w ww . j a v a 2 s . c o m*/ Iterator iterator2 = open_list.keySet().iterator(); while (iterator2.hasNext()) { Integer key = (Integer) iterator2.next(); System.out.println("key : " + key + " value :" + open_list.get(key)); } Scanner scanner = new Scanner( System.in ); String input = scanner.nextLine(); */ counter++; Integer key = (Integer) iterator.next(); String matrizatualx1 = open_list.asMap().get(key).iterator().next(); Estado estadomenor = processados.get(matrizatualx1); int altura = estadomenor.getCusto(); System.out.println("Altura: " + altura); //LOCALIZA O ZERO int[] zerot = localizazero(estadomenor.getMatriz()); int x = zerot[0]; int y = zerot[1]; int x0 = x - 1; int x1 = x + 1; int y0 = y - 1; int y1 = y + 1; int difmatrizatualx = diferencaMatriz(estadomenor.getMatriz()); if (difmatrizatualx == 0) { System.out.println("Arvores processadas: " + counter); System.out.println("Custo: " + estadomenor.getCusto()); break; } int[][] matrizatualx = estadomenor.getMatriz(); if (x0 >= 0) { int[][] matriz; matriz = copyarray(matrizatualx); matriz[x][y] = matrizatualx[x0][y]; matriz[x0][y] = matrizatualx[x][y]; String stringmatriz1 = transformaMatrizString(matriz); if (!(processados.containsKey(stringmatriz1))) { int diferencamatriz = diferencaMatriz(matriz); int custototal = diferencamatriz + altura + 1; Estado estadonovo = new Estado(matriz, altura + 1); open_list.put(custototal, stringmatriz1); processados.put(stringmatriz1, estadonovo); } } if (x1 <= 3) { int[][] matriz; matriz = copyarray(matrizatualx); matriz[x][y] = matrizatualx[x1][y]; matriz[x1][y] = matrizatualx[x][y]; String stringmatriz2 = transformaMatrizString(matriz); if (!(processados.containsKey(stringmatriz2))) { int diferencamatriz = diferencaMatriz(matriz); int custototal = diferencamatriz + altura + 1; Estado estadonovo = new Estado(matriz, altura + 1); open_list.put(custototal, stringmatriz2); processados.put(stringmatriz2, estadonovo); } } if (y0 >= 0) { int[][] matriz; matriz = copyarray(matrizatualx); matriz[x][y] = matrizatualx[x][y0]; matriz[x][y0] = matrizatualx[x][y]; String stringmatriz3 = transformaMatrizString(matriz); if (!(processados.containsKey(stringmatriz3))) { int diferencamatriz = diferencaMatriz(matriz); int custototal = diferencamatriz + altura + 1; Estado estadonovo = new Estado(matriz, altura + 1); open_list.put(custototal, stringmatriz3); processados.put(stringmatriz3, estadonovo); } } if (y1 <= 3) { int[][] matriz; matriz = copyarray(matrizatualx); matriz[x][y] = matrizatualx[x][y1]; matriz[x][y1] = matrizatualx[x][y]; int custoateaqui = diferencaMatriz(matriz) + altura + 1; String stringmatriz4 = transformaMatrizString(matriz); if (!(processados.containsKey(stringmatriz4))) { int diferencamatriz = diferencaMatriz(matriz); int custototal = diferencamatriz + altura + 1; Estado estadonovo = new Estado(matriz, altura + 1); open_list.put(custototal, stringmatriz4); processados.put(stringmatriz4, estadonovo); } } open_list.remove(key, matrizatualx1); } }
From source file:com.giaybac.traprange.MAIN.java
private static void extractTables(String[] args) { try {/* w ww. j a va 2s . c om*/ List<Integer> pages = getPages(args); List<Integer> exceptPages = getExceptPages(args); List<Integer[]> exceptLines = getExceptLines(args); String in = getIn(args); String out = getOut(args); PDFTableExtractor extractor = (new PDFTableExtractor()).setSource(in); //page for (Integer page : pages) { extractor.addPage(page); } //except page for (Integer exceptPage : exceptPages) { extractor.exceptPage(exceptPage); } //except lines List<Integer> exceptLineIdxs = new ArrayList<>(); Multimap<Integer, Integer> exceptLineInPages = LinkedListMultimap.create(); for (Integer[] exceptLine : exceptLines) { if (exceptLine.length == 1) { exceptLineIdxs.add(exceptLine[0]); } else if (exceptLine.length == 2) { int lineIdx = exceptLine[0]; int pageIdx = exceptLine[1]; exceptLineInPages.put(pageIdx, lineIdx); } } if (!exceptLineIdxs.isEmpty()) { extractor.exceptLine(Ints.toArray(exceptLineIdxs)); } if (!exceptLineInPages.isEmpty()) { for (int pageIdx : exceptLineInPages.keySet()) { extractor.exceptLine(pageIdx, Ints.toArray(exceptLineInPages.get(pageIdx))); } } //begin parsing pdf file List<Table> tables = extractor.extract(); Writer writer = new OutputStreamWriter(new FileOutputStream(out), "UTF-8"); try { for (Table table : tables) { writer.write("Page: " + (table.getPageIdx() + 1) + "\n"); writer.write(table.toHtml()); } } finally { try { writer.close(); } catch (Exception e) { } } } catch (Exception e) { logger.error(null, e); } }
From source file:moa2014.MOAH12014.java
public static int principal(int[][] matrizatual) { long startTime = System.currentTimeMillis(); Multimap<Integer, String> open_list = TreeMultimap.create(); HashMap<String, Estado> processados = new HashMap(); int difmatrizatual = diferencaMatriz(matrizatual); String stringmatriz = transformaMatrizString(matrizatual); open_list.put(difmatrizatual, stringmatriz); Estado estadoatual = new Estado(matrizatual, 0); processados.put(stringmatriz, estadoatual); int arvoresgeradas = 0; int arvoresprocessadas = 0; while (!open_list.isEmpty()) { Iterator iterator = open_list.keySet().iterator(); Integer key = (Integer) iterator.next(); String matrizatualx1 = open_list.asMap().get(key).iterator().next(); Estado estadomenor = processados.get(matrizatualx1); int altura = estadomenor.getCusto(); //LOCALIZA O ZERO int[] zerot = localizazero(estadomenor.getMatriz()); int x = zerot[0]; int y = zerot[1]; int x0 = x - 1; int x1 = x + 1; int y0 = y - 1; int y1 = y + 1; int difmatrizatualx = diferencaMatriz(estadomenor.getMatriz()); if (difmatrizatualx == 0) { long endTime = System.currentTimeMillis(); System.out.println("---------------------------------------"); System.out.println("Arvores Geradas: " + arvoresgeradas); System.out.println("Arvores Processadas: " + arvoresprocessadas); System.out.println("Quantidade de Movimentos: " + estadomenor.getCusto()); System.out.println("Tempo de processamento " + (endTime - startTime) + " ms"); System.out.println("---------------------------------------\n\n"); return 0; }/*from w w w . jav a 2 s .c o m*/ arvoresprocessadas++; int[][] matrizatualx = estadomenor.getMatriz(); if (x0 >= 0) { int[][] matriz; matriz = copyarray(matrizatualx); matriz[x][y] = matrizatualx[x0][y]; matriz[x0][y] = matrizatualx[x][y]; String stringmatriz1 = transformaMatrizString(matriz); if (!(processados.containsKey(stringmatriz1))) { arvoresgeradas++; int diferencamatriz = diferencaMatriz(matriz); int custototal = diferencamatriz + altura + 1; Estado estadonovo = new Estado(matriz, altura + 1); open_list.put(custototal, stringmatriz1); processados.put(stringmatriz1, estadonovo); } } if (x1 <= 3) { int[][] matriz; matriz = copyarray(matrizatualx); matriz[x][y] = matrizatualx[x1][y]; matriz[x1][y] = matrizatualx[x][y]; String stringmatriz2 = transformaMatrizString(matriz); if (!(processados.containsKey(stringmatriz2))) { arvoresgeradas++; int diferencamatriz = diferencaMatriz(matriz); int custototal = diferencamatriz + altura + 1; Estado estadonovo = new Estado(matriz, altura + 1); open_list.put(custototal, stringmatriz2); processados.put(stringmatriz2, estadonovo); } } if (y0 >= 0) { int[][] matriz; matriz = copyarray(matrizatualx); matriz[x][y] = matrizatualx[x][y0]; matriz[x][y0] = matrizatualx[x][y]; String stringmatriz3 = transformaMatrizString(matriz); if (!(processados.containsKey(stringmatriz3))) { arvoresgeradas++; int diferencamatriz = diferencaMatriz(matriz); int custototal = diferencamatriz + altura + 1; Estado estadonovo = new Estado(matriz, altura + 1); open_list.put(custototal, stringmatriz3); processados.put(stringmatriz3, estadonovo); } } if (y1 <= 3) { int[][] matriz; matriz = copyarray(matrizatualx); matriz[x][y] = matrizatualx[x][y1]; matriz[x][y1] = matrizatualx[x][y]; int custoateaqui = diferencaMatriz(matriz) + altura + 1; String stringmatriz4 = transformaMatrizString(matriz); if (!(processados.containsKey(stringmatriz4))) { arvoresgeradas++; int diferencamatriz = diferencaMatriz(matriz); int custototal = diferencamatriz + altura + 1; Estado estadonovo = new Estado(matriz, altura + 1); open_list.put(custototal, stringmatriz4); processados.put(stringmatriz4, estadonovo); } } open_list.remove(key, matrizatualx1); } return 0; }
From source file:pt.org.aguiaj.core.AguiaJActivator.java
private static Multimap<String, Class<?>> readClasses(List<IPath> workingDirs) { Multimap<String, Class<?>> ret = ArrayListMultimap.create(); for (IPath path : workingDirs) { Map<String, Set<Class<?>>> classes = ReflectionUtils.readClassFiles(path); if (ret.isEmpty()) { for (String key : classes.keySet()) { ret.putAll(key, classes.get(key)); }/*w w w .j ava 2s . c o m*/ } } return ret; }
From source file:moa2014.MOAH32014.java
public static int principal(int[][] matrizatual) { long startTime = System.currentTimeMillis(); Multimap<Integer, String> open_list = TreeMultimap.create(); HashMap<String, Estado> processados = new HashMap(); int difmatrizatual = diferencaMatriz(matrizatual); String stringmatriz = transformaMatrizString(matrizatual); open_list.put(difmatrizatual, stringmatriz); Estado estadoatual = new Estado(matrizatual, 0); processados.put(stringmatriz, estadoatual); int arvoresgeradas = 0; int arvoresprocessadas = 0; while (!open_list.isEmpty()) { Iterator iterator = open_list.keySet().iterator(); Integer key = (Integer) iterator.next(); String matrizatualx1 = open_list.asMap().get(key).iterator().next(); Estado estadomenor = processados.get(matrizatualx1); int altura = estadomenor.getCusto(); //LOCALIZA O ZERO int[] zerot = localizazero(estadomenor.getMatriz()); int x = zerot[0]; int y = zerot[1]; int x0 = x - 1; int x1 = x + 1; int y0 = y - 1; int y1 = y + 1; int difmatrizatualx = diferencaMatriz(estadomenor.getMatriz()); if (difmatrizatualx == 0) { long endTime = System.currentTimeMillis(); System.out.println("---------------------------------------"); System.out.println("Arvores Geradas: " + arvoresgeradas); System.out.println("Arvores Processadas: " + arvoresprocessadas); System.out.println("Quantidade de Movimentos: " + estadomenor.getCusto()); System.out.println("Tempo de processamento " + (endTime - startTime) + " ms"); System.out.println("---------------------------------------\n\n"); return 0; }//from w w w. ja v a 2s . co m arvoresprocessadas++; int[][] matrizatualx = estadomenor.getMatriz(); if (x0 >= 0) { int[][] matriz; matriz = copyarray(matrizatualx); matriz[x][y] = matrizatualx[x0][y]; matriz[x0][y] = matrizatualx[x][y]; String stringmatriz1 = transformaMatrizString(matriz); if (!(processados.containsKey(stringmatriz1))) { arvoresgeradas++; int diferencamatriz = diferencaMatriz(matriz); int custototal = diferencamatriz + altura + 1; Estado estadonovo = new Estado(matriz, altura + 1); open_list.put(custototal, stringmatriz1); processados.put(stringmatriz1, estadonovo); } } if (x1 <= 3) { int[][] matriz; matriz = copyarray(matrizatualx); matriz[x][y] = matrizatualx[x1][y]; matriz[x1][y] = matrizatualx[x][y]; String stringmatriz2 = transformaMatrizString(matriz); if (!(processados.containsKey(stringmatriz2))) { arvoresgeradas++; int diferencamatriz = diferencaMatriz(matriz); int custototal = diferencamatriz + altura + 1; Estado estadonovo = new Estado(matriz, altura + 1); open_list.put(custototal, stringmatriz2); processados.put(stringmatriz2, estadonovo); } } if (y0 >= 0) { int[][] matriz; matriz = copyarray(matrizatualx); matriz[x][y] = matrizatualx[x][y0]; matriz[x][y0] = matrizatualx[x][y]; String stringmatriz3 = transformaMatrizString(matriz); if (!(processados.containsKey(stringmatriz3))) { arvoresgeradas++; int diferencamatriz = diferencaMatriz(matriz); int custototal = diferencamatriz + altura + 1; Estado estadonovo = new Estado(matriz, altura + 1); open_list.put(custototal, stringmatriz3); processados.put(stringmatriz3, estadonovo); } } if (y1 <= 3) { int[][] matriz; matriz = copyarray(matrizatualx); matriz[x][y] = matrizatualx[x][y1]; matriz[x][y1] = matrizatualx[x][y]; int custoateaqui = diferencaMatriz(matriz) + altura + 1; String stringmatriz4 = transformaMatrizString(matriz); if (!(processados.containsKey(stringmatriz4))) { arvoresgeradas++; int diferencamatriz = diferencaMatriz(matriz); int custototal = diferencamatriz + altura + 1; Estado estadonovo = new Estado(matriz, altura + 1); open_list.put(custototal, stringmatriz4); processados.put(stringmatriz4, estadonovo); } } open_list.remove(key, matrizatualx1); } return 0; }
From source file:moa2014.MOAH22014.java
public static int principal(int[][] matrizatual) { long startTime = System.currentTimeMillis(); Multimap<Integer, String> open_list = TreeMultimap.create(); HashMap<String, Estado> processados = new HashMap(); int difmatrizatual = diferencaMatriz(matrizatual); String stringmatriz = transformaMatrizString(matrizatual); open_list.put(difmatrizatual, stringmatriz); Estado estadoatual = new Estado(matrizatual, 0); processados.put(stringmatriz, estadoatual); int arvoresgeradas = 0; int arvoresprocessadas = 0; while (!open_list.isEmpty()) { Iterator iterator = open_list.keySet().iterator(); Integer key = (Integer) iterator.next(); String matrizatualx1 = open_list.asMap().get(key).iterator().next(); Estado estadomenor = processados.get(matrizatualx1); int altura = estadomenor.getCusto(); //LOCALIZA O ZERO int[] zerot = localizazero(estadomenor.getMatriz()); int x = zerot[0]; int y = zerot[1]; int x0 = x - 1; int x1 = x + 1; int y0 = y - 1; int y1 = y + 1; int difmatrizatualx = diferencaMatriz(estadomenor.getMatriz()); if (difmatrizatualx == 0) { long endTime = System.currentTimeMillis(); System.out.println("---------------------------------------"); System.out.println("Arvores Geradas: " + arvoresgeradas); System.out.println("Arvores Processadas: " + arvoresprocessadas); System.out.println("Quantidade de Movimentos: " + estadomenor.getCusto()); System.out.println("Tempo de processamento " + (endTime - startTime) + " ms"); System.out.println("---------------------------------------\n\n"); return 0; }/*from ww w .j a v a 2 s. c o m*/ arvoresprocessadas++; int[][] matrizatualx = estadomenor.getMatriz(); if (x0 >= 0) { int[][] matriz; matriz = copyarray(matrizatualx); matriz[x][y] = matrizatualx[x0][y]; matriz[x0][y] = matrizatualx[x][y]; String stringmatriz1 = transformaMatrizString(matriz); if (!(processados.containsKey(stringmatriz1))) { arvoresgeradas++; int diferencamatriz = diferencaMatriz(matriz); int custototal = diferencamatriz + altura + 1; Estado estadonovo = new Estado(matriz, altura + 1); open_list.put(custototal, stringmatriz1); processados.put(stringmatriz1, estadonovo); } } if (x1 <= 3) { int[][] matriz; matriz = copyarray(matrizatualx); matriz[x][y] = matrizatualx[x1][y]; matriz[x1][y] = matrizatualx[x][y]; String stringmatriz2 = transformaMatrizString(matriz); if (!(processados.containsKey(stringmatriz2))) { arvoresgeradas++; int diferencamatriz = diferencaMatriz(matriz); int custototal = diferencamatriz + altura + 1; Estado estadonovo = new Estado(matriz, altura + 1); open_list.put(custototal, stringmatriz2); processados.put(stringmatriz2, estadonovo); } } if (y0 >= 0) { int[][] matriz; matriz = copyarray(matrizatualx); matriz[x][y] = matrizatualx[x][y0]; matriz[x][y0] = matrizatualx[x][y]; String stringmatriz3 = transformaMatrizString(matriz); if (!(processados.containsKey(stringmatriz3))) { arvoresgeradas++; int diferencamatriz = diferencaMatriz(matriz); int custototal = diferencamatriz + altura + 1; Estado estadonovo = new Estado(matriz, altura + 1); open_list.put(custototal, stringmatriz3); processados.put(stringmatriz3, estadonovo); } } if (y1 <= 3) { int[][] matriz; matriz = copyarray(matrizatualx); matriz[x][y] = matrizatualx[x][y1]; matriz[x][y1] = matrizatualx[x][y]; int custoateaqui = diferencaMatriz(matriz) + altura + 1; String stringmatriz4 = transformaMatrizString(matriz); if (!(processados.containsKey(stringmatriz4))) { arvoresgeradas++; int diferencamatriz = diferencaMatriz(matriz); int custototal = diferencamatriz + altura + 1; Estado estadonovo = new Estado(matriz, altura + 1); open_list.put(custototal, stringmatriz4); processados.put(stringmatriz4, estadonovo); } } open_list.remove(key, matrizatualx1); } return 0; }