Ducky Postado Novembro 17, 2017 Denunciar Compartilhar Postado Novembro 17, 2017 Opa, minha dúvida eh como comparar varias arrylist de INT e pegar qual tem o maior valor. Exemplo: Tenho 5 arrylist, comparo essas 5 e pego qual tem mais INT e faço alguma coisa Link para o comentário Compartilhar em outros sites More sharing options...
Marc Postado Novembro 17, 2017 Denunciar Compartilhar Postado Novembro 17, 2017 Calma ae, Tu quer ver qual array tem mais variavel? ou qual array temn a variavel com o maior valor? "qual tem mais INT" Link para o comentário Compartilhar em outros sites More sharing options...
Kurama Postado Novembro 17, 2017 Denunciar Compartilhar Postado Novembro 17, 2017 Sem nexo explica melhor isso ai '-' Nunca nem vi Link para o comentário Compartilhar em outros sites More sharing options...
DvHPlugins Postado Novembro 17, 2017 Denunciar Compartilhar Postado Novembro 17, 2017 Nao entendi nao mano..... Explica esse merda ae Link para o comentário Compartilhar em outros sites More sharing options...
Hard Postado Novembro 17, 2017 Denunciar Compartilhar Postado Novembro 17, 2017 Link para o comentário Compartilhar em outros sites More sharing options...
Ducky Postado Novembro 17, 2017 Autor Denunciar Compartilhar Postado Novembro 17, 2017 Calma ae, Tu quer ver qual array tem mais variavel? ou qual array temn a variavel com o maior valor? "qual tem mais INT" Sem nexo explica melhor isso ai '-' Nunca nem vi Vamos lá.. Tenho 5 ArryList<Integer> Ai eu tenho um comando qlqer q adiciona +1 na ArryList.. Eu quero comparar essas 5 ArryList e ver qual tem mais.. Como se fosse um TOP, porém o TOP você pega dentro de um ArryList, eu quero fazer um TOP porém das proprias ArryList. Denunciado. Link para o comentário Compartilhar em outros sites More sharing options...
CyndaKil Postado Novembro 17, 2017 Denunciar Compartilhar Postado Novembro 17, 2017 Mas oq? nunca nem vi , fazer um top com as próprias Arrays Link para o comentário Compartilhar em outros sites More sharing options...
Marc Postado Novembro 17, 2017 Denunciar Compartilhar Postado Novembro 17, 2017 Vamos lá.. Tenho 5 ArryList<Integer> Ai eu tenho um comando qlqer q adiciona +1 na ArryList.. Eu quero comparar essas 5 ArryList e ver qual tem mais.. Como se fosse um TOP, porém o TOP você pega dentro de um ArryList, eu quero fazer um TOP porém das proprias ArryList. Denunciado. Ta pelo que eu entendi, tu quer ver qual array tem mais variaveis isso? Link para o comentário Compartilhar em outros sites More sharing options...
Ducky Postado Novembro 17, 2017 Autor Denunciar Compartilhar Postado Novembro 17, 2017 Ta pelo que eu entendi, tu quer ver qual array tem mais variaveis isso? S Link para o comentário Compartilhar em outros sites More sharing options...
Marc Postado Novembro 17, 2017 Denunciar Compartilhar Postado Novembro 17, 2017 Cria 2 variaveis int, int a, b; a = Array1.size(); b = Array2.size(); if(a>b){ //a maior que b }else{ //a menor que b } Eu fiz pelo GB msm, n testei, tenta ae 1 Link para o comentário Compartilhar em outros sites More sharing options...
Ducky Postado Novembro 17, 2017 Autor Denunciar Compartilhar Postado Novembro 17, 2017 Cria 2 variaveis int, int a, b; a = Array1.size(); b = Array2.size(); if(a>b){ //a maior que b }else{ //a menor que b } Eu fiz pelo GB msm, n testei, tenta ae Entendi a lógica, porém se forem mais de 10 que eu queira comparar? Vou dando else ? Link para o comentário Compartilhar em outros sites More sharing options...
Marc Postado Novembro 17, 2017 Denunciar Compartilhar Postado Novembro 17, 2017 Entendi a lógica, porém se forem mais de 10 que eu queira comparar? Vou dando else ? Else if hehehe Deve ter um jeito mais economico (em questap de linhas), mas ai eu teria que pensar melhor ^^ Link para o comentário Compartilhar em outros sites More sharing options...
brunodsfelix Postado Novembro 17, 2017 Denunciar Compartilhar Postado Novembro 17, 2017 Compartilhe a sua lógica(ideia) para construção de um código mais limpo e estável. Isso está uma confusão só. Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Novembro 17, 2017 Denunciar Compartilhar Postado Novembro 17, 2017 List<ArrayList<String>> arrays = new ArrayList(); // add suas arrays na array acima ArrayList<String> maiorArray = null; int size = 0; for(ArrayList<String> a : arrays) if(maiorArray == null){ maiorArray = a; size = a.size(); }else{ if(a.size() > size){ maiorArray = a; size = a.size(); } } Código bem feio aí Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Novembro 17, 2017 Denunciar Compartilhar Postado Novembro 17, 2017 (editado) private ArrayList<Integer> getHigher(ArrayList<ArrayList<Integer>> arrayLists) { ArrayList<Integer> toReturn = null; int higher = 0; for (ArrayList<Integer> arrayList : arrayLists) { for (int i : arrayList) { if (i > higher) { higher = i; toReturn = arrayList; } } } return toReturn; } Provavelmente tem métodos que já faz isso, mas foi isso que veio na mente. ArrayList<Integer> a1 = new ArrayList<>(); ArrayList<Integer> a2 = new ArrayList<>(); ArrayList<Integer> a3 = new ArrayList<>(); a1.add(0); a1.add(1); a1.add(3); a2.add(4); a2.add(5); a2.add(6); a3.add(7); a3.add(8); a3.add(9); ArrayList<ArrayList<Integer>> arrayLists = new ArrayList<>(); arrayLists.add(a1); arrayLists.add(a2); arrayLists.add(a3); System.out.println(getHigher(arrayLists)); // [7,8,9] @Edit Pera, você quer ver qual array tem o maior elemento, ou qual array tem mais elementos? MAIOR e MAIS tem muita diferença ;-; Editado Novembro 17, 2017 por zAth 1 Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Novembro 17, 2017 Denunciar Compartilhar Postado Novembro 17, 2017 private ArrayList<Integer> getHigher(ArrayList<ArrayList<Integer>> arrayLists) { ArrayList<Integer> toReturn = null; int higher = 0; for (ArrayList<Integer> arrayList : arrayLists) { for (int i : arrayList) { if (i > higher) { higher = i; toReturn = arrayList; } } } return toReturn; } Provavelmente tem métodos que já faz isso, mas foi isso que veio na mente. ArrayList<Integer> a1 = new ArrayList<>(); ArrayList<Integer> a2 = new ArrayList<>(); ArrayList<Integer> a3 = new ArrayList<>(); a1.add(0); a1.add(1); a1.add(3); a2.add(4); a2.add(5); a2.add(6); a3.add(7); a3.add(8); a3.add(9); ArrayList<ArrayList<Integer>> arrayLists = new ArrayList<>(); arrayLists.add(a1); arrayLists.add(a2); arrayLists.add(a3); System.out.println(getHigher(arrayLists)); // [7,8,9] @Edit Pera, você quer ver qual array tem o maior elemento, ou qual array tem mais elementos? MAIOR e MAIS tem muita diferença ;-; É.... Caso queira o array que tem mais elementos, usa meu código, caso contrário, usa o do @zAth Link para o comentário Compartilhar em outros sites More sharing options...
Ducky Postado Novembro 17, 2017 Autor Denunciar Compartilhar Postado Novembro 17, 2017 (editado) private ArrayList<Integer> getHigher(ArrayList<ArrayList<Integer>> arrayLists) { ArrayList<Integer> toReturn = null; int higher = 0; for (ArrayList<Integer> arrayList : arrayLists) { for (int i : arrayList) { if (i > higher) { higher = i; toReturn = arrayList; } } } return toReturn; } Provavelmente tem métodos que já faz isso, mas foi isso que veio na mente. ArrayList<Integer> a1 = new ArrayList<>(); ArrayList<Integer> a2 = new ArrayList<>(); ArrayList<Integer> a3 = new ArrayList<>(); a1.add(0); a1.add(1); a1.add(3); a2.add(4); a2.add(5); a2.add(6); a3.add(7); a3.add(8); a3.add(9); ArrayList<ArrayList<Integer>> arrayLists = new ArrayList<>(); arrayLists.add(a1); arrayLists.add(a2); arrayLists.add(a3); System.out.println(getHigher(arrayLists)); // [7,8,9] @Edit Pera, você quer ver qual array tem o maior elemento, ou qual array tem mais elementos? MAIOR e MAIS tem muita diferença ;-; Ss, quero o maior mesmo.. Entendi também a lógica, porém só não entendi essa parte e justo nela tem um erro: "System.out.println(getHigher(arrayLists));" Estou querendo retornar em send o maior.. org.bukkit.command.CommandException: Unhandled exception executing command 'check' in plugin LT v1.0 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[Spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[Spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) ~[Spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1162) [Spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997) [Spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [Spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [Spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [Spigot.jar:git-Spigot-db6de12-18fbb24] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_144] at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_144] at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [Spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [Spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [Spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [Spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [Spigot.jar:git-Spigot-db6de12-18fbb24] at java.lang.Thread.run(Unknown Source) [?:1.8.0_144] Caused by: java.lang.NullPointerException at java.io.Writer.write(Unknown Source) ~[?:1.8.0_144] at java.io.PrintStream.write(Unknown Source) ~[?:1.8.0_144] at java.io.PrintStream.print(Unknown Source) ~[?:1.8.0_144] at java.io.PrintStream.println(Unknown Source) ~[?:1.8.0_144] at ml.lbplugins.lt.Comandos.onCommand(Comandos.java:30) ~[?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[Spigot.jar:git-Spigot-db6de12-18fbb24] ... 15 more @EDIT Agora que vi seu edit, malz, vou ler lá É.... Caso queira o array que tem mais elementos, usa meu código, caso contrário, usa o do @zAth De fato, quero pegar o MAIOR e não qual tem mais. Editado Novembro 17, 2017 por Burpo Link para o comentário Compartilhar em outros sites More sharing options...
evertonschuster Postado Novembro 17, 2017 Denunciar Compartilhar Postado Novembro 17, 2017 (editado) vai ter q usar uns for bem locao int higher = -99999; for (int i : arrayList1) { if (i > higher) { higher = i; }} for (int i : arrayList2) { if (i > higher) { higher = i; }} for (int i : arrayList3) { if (i > higher) { higher = i; }} for (int i : arrayList4) { if (i > higher) { higher = i; }} for (int i : arrayList5) { if (i > higher) { higher = i; }} se for pra pegar o maior, esta logica seria mais otimizada, pois quebra de nivel, cria mtos fors desnecessarios Editado Novembro 17, 2017 por evertonschuster Link para o comentário Compartilhar em outros sites More sharing options...
Ducky Postado Novembro 17, 2017 Autor Denunciar Compartilhar Postado Novembro 17, 2017 private ArrayList<Integer> getHigher(ArrayList<ArrayList<Integer>> arrayLists) { ArrayList<Integer> toReturn = null; int higher = 0; for (ArrayList<Integer> arrayList : arrayLists) { for (int i : arrayList) { if (i > higher) { higher = i; toReturn = arrayList; } } } return toReturn; } Provavelmente tem métodos que já faz isso, mas foi isso que veio na mente. ArrayList<Integer> a1 = new ArrayList<>(); ArrayList<Integer> a2 = new ArrayList<>(); ArrayList<Integer> a3 = new ArrayList<>(); a1.add(0); a1.add(1); a1.add(3); a2.add(4); a2.add(5); a2.add(6); a3.add(7); a3.add(8); a3.add(9); ArrayList<ArrayList<Integer>> arrayLists = new ArrayList<>(); arrayLists.add(a1); arrayLists.add(a2); arrayLists.add(a3); System.out.println(getHigher(arrayLists)); // [7,8,9] @Edit Pera, você quer ver qual array tem o maior elemento, ou qual array tem mais elementos? MAIOR e MAIS tem muita diferença ;-; hmm.. Só não entendi esse método: Ele vai pegar o maior das ArryList que adicionamos correto? Essa parte eu deveria estar adicionando no cmd de verificação por exemplo? private ArrayList<Integer> getHigher(ArrayList<ArrayList<Integer>> arrayLists) { ArrayList<Integer> toReturn = null; int higher = 0; for (ArrayList<Integer> arrayList : arrayLists) { for (int i : arrayList) { if (i > higher) { higher = i; toReturn = arrayList; } } } return toReturn; } Link para o comentário Compartilhar em outros sites More sharing options...
Ducky Postado Novembro 17, 2017 Autor Denunciar Compartilhar Postado Novembro 17, 2017 (editado) vai ter q usar uns for bem locao int higher = -99999; for (int i : arrayList1) { if (i > higher) { higher = i; } } for (int i : arrayList2) { if (i > higher) { higher = i; } } for (int i : arrayList3) { if (i > higher) { higher = i; } } for (int i : arrayList4) { if (i > higher) { higher = i; } } for (int i : arrayList5) { if (i > higher) { higher = i; } } se for pra pegar o maior, esta logica seria mais otimizada, pois quebra de nivel, cria mtos fors desnecessarios Isso só está resultando sempre no primeiro for, mesmo outra Arry tendo o maior valor.. @EDIT Aparenta realmente ser a maneira mais clear e simples de fazer esse Compare ArryList se funcionar.. Editado Novembro 17, 2017 por Burpo Link para o comentário Compartilhar em outros sites More sharing options...
evertonschuster Postado Novembro 17, 2017 Denunciar Compartilhar Postado Novembro 17, 2017 Isso só está resultando sempre no primeiro for, mesmo outra Arry tendo o maior valor.. @EDIT Aparenta realmente ser a maneira mais clear e simples de fazer esse Compare ArryList se funcionar.. Isso só está resultando sempre no primeiro for, mesmo outra Arry tendo o maior valor.. Testou ai? kkkkk Aparenta realmente ser a maneira mais clear e simples de fazer esse Compare ArryList se funcionar.., va vdd nao, e um codigo descomplicado kkkkkk Aparenta realmente ser a maneira mais clear e simples de fazer esse Compare ArryList se funcionar.. Link para o comentário Compartilhar em outros sites More sharing options...
smgabriel Postado Novembro 17, 2017 Denunciar Compartilhar Postado Novembro 17, 2017 Bem, coloquei a explicação, espero que consiga entender. Recursividade pessoal... /** * * @param arrays Pega todas arrays que serão comparadas. * @return Retorna a array com o maior numero. * */ private static List<Integer> getListWithMaiorNumero(List<List<Integer>> arrays) { arrays.forEach(array -> { //Percore as arrays Collections.sort(array); // Sorteia os valores para ficarem na ordem crescente Collections.reverse(array); // Sorteia os valores revertendo a ordem deles, ou seja, decrescente }); List<Integer> maior = null; // armazena a lista com maior numero Integer maiorNumber = 0; // armazena o maior numero for (List<Integer> list : arrays) { // percorre todas arrays Integer atual = list.get(0); // Como os valores foram revertidos e agora estão na ordem decrescente, o maior numero fica na primeira posição, vamos capturar o mesmoo. if (Integer.compare(atual, maiorNumber) == 1) { /* Compara os valores, se for igual a 1, quer dizer que o numero que acabamos de capturar é maior do que o que estava armazenado * Se for igual a 0, quer dizer que os valores são os mesmos, ou seja, não precisa alterar nada, a mesma coisa acontece se for igual a um negativo. */ maior = list; // armazena a lista com maior numero maiorNumber = atual; // armazena o maior numero } } return maior; // retorna a lista com o maior numero } Usando: public static void main(String[] args) throws Exception { List<Integer> a1 = Arrays.asList(1, 2, 3, 40, 98, 545, 5443); List<Integer> a2 = Arrays.asList(1, 245, 3, 40, 98, 545, 55456443); List<Integer> a3 = Arrays.asList(1565, 1056, 3, 405445, 98, 645, 5443); List<List<Integer>> toCompare = Arrays.asList(a1, a2, a3); System.out.println(getListWithMaiorNumero(toCompare)); } Saída: [55456443, 545, 245, 98, 40, 3, 1] 1 Link para o comentário Compartilhar em outros sites More sharing options...
Ducky Postado Novembro 17, 2017 Autor Denunciar Compartilhar Postado Novembro 17, 2017 Resolvido.. Depois de juntar alguns códigos, consegui de um método diferente, mesmo assim obrigado a todos que ajudaram e tentaram! Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Novembro 17, 2017 Denunciar Compartilhar Postado Novembro 17, 2017 Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas. Atenciosamente, Gamer's Board Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Ducky
Opa, minha dúvida eh como comparar varias arrylist de INT e pegar qual tem o maior valor.
Exemplo:
Tenho 5 arrylist, comparo essas 5 e pego qual tem mais INT e faço alguma coisa
Link para o comentário
Compartilhar em outros sites
23 respostass a esta questão
Posts Recomendados