java.util.ArrayList#sort ( )源码实例Demo

下面列出了java.util.ArrayList#sort ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: dataenum   文件: AccessSelector.java
private List<PackageAndAccess> parseAnnotatedPackages(
    Set<? extends Element> visibilityAnnotatedPackages) {
  ArrayList<PackageAndAccess> result = new ArrayList<>(visibilityAnnotatedPackages.size());

  for (Element element : visibilityAnnotatedPackages) {
    if (!(element instanceof PackageElement)) {
      throw new IllegalArgumentException(
          "received a access annotated element that is not a package: " + element);
    }

    PackageElement packageElement = (PackageElement) element;

    result.add(
        new PackageAndAccess(
            packageElement.getQualifiedName().toString(),
            element.getAnnotation(ConstructorAccess.class).value()));
  }

  result.sort((o1, o2) -> o2.packageName.length() - o1.packageName.length());

  return result;
}
 
源代码2 项目: netbeans   文件: ConfigurationsNode.java
@Override
protected boolean createKeys(List<FileObject> keys) {
    ArrayList<FileObject> ret = new ArrayList<>(dep.getFiles().size());
    for (File file : dep.getFiles()) {
        FileObject fo = FileUtil.toFileObject(file);
        if (fo != null) {
            ret.add(fo);
        }
    }
    ret.sort(new Comparator<FileObject>() {
        @Override
        public int compare(FileObject o1, FileObject o2) {
            return o1.getNameExt().compareTo(o2.getNameExt());
        }
    });
    keys.addAll(ret);
    return true;
}
 
源代码3 项目: openemm   文件: ComMailingBaseForm.java
public ArrayList<Integer> getPriorities() {
	MediaTypes[] mediaTypes = MediaTypes.values();

	ArrayList<Integer> priorities = new ArrayList<>(mediaTypes.length);
	for (MediaTypes type : mediaTypes) {
		priorities.add(type.getMediaCode());
	}

	Map<Integer, Mediatype> map = getMediatypes();
	priorities.sort((c1, c2) -> {
		Mediatype type1 = map.get(c1);
		Mediatype type2 = map.get(c2);

		if (type1 == null || type2 == null) {
			if (type1 == type2) {
				return 0;
			} else {
				return type1 == null ? 1 : -1;
			}
		} else {
			return type1.getPriority() - type2.getPriority();
		}
	});

	return priorities;
}
 
源代码4 项目: registry   文件: AbstractStoreManagerTest.java
@Test
public void testFindOrderBy() {
    for (StorableTest test : storableTests) {
        test.addAllToStorage();
        List<QueryParam> queryParams = Collections.emptyList();
        Collection<? extends Storable> allExisting = getStorageManager().list(test.getNameSpace());

        ArrayList<? extends Storable> sortedStorables = Lists.newArrayList(allExisting);
        sortedStorables.sort((Comparator<Storable>) (storable1, storable2) -> (int) (storable2.getId() - storable1.getId()));

        List<OrderByField> orderByFields = Lists.newArrayList(OrderByField.of("id", true));
        final Collection<Storable> allMatchingOrderByFilter = getStorageManager().find(test.getNameSpace(), queryParams, orderByFields);

        System.out.println("allMatchingOrderByFilter = " + allMatchingOrderByFilter);
        System.out.println("sortedStorables = " + sortedStorables);

        assertIterators(sortedStorables, allMatchingOrderByFilter);
    }
}
 
源代码5 项目: crate   文件: Schemas.java
private static List<String> getSimilarTables(User user, String tableName, Iterable<TableInfo> tables) {
    LevenshteinDistance levenshteinDistance = new LevenshteinDistance();
    ArrayList<Candidate> candidates = new ArrayList<>();
    for (TableInfo table : tables) {
        if (user.hasAnyPrivilege(Privilege.Clazz.TABLE, table.ident().fqn())) {
            String candidate = table.ident().name();
            float score = levenshteinDistance.getDistance(tableName.toLowerCase(Locale.ENGLISH), candidate.toLowerCase(Locale.ENGLISH));
            if (score > 0.7f) {
                candidates.add(new Candidate(score, candidate));
            }
        }
    }
    candidates.sort(Comparator.comparing((Candidate x) -> x.score).reversed());
    return candidates.stream()
        .limit(5)
        .map(x -> x.name)
        .collect(Collectors.toList());
}
 
源代码6 项目: impsort-maven-plugin   文件: Grouper.java
static ArrayList<Group> parse(String groups) {
  ArrayList<Group> parsedGroups = new ArrayList<>();
  String[] array = requireNonNull(groups).replaceAll("\\s+", "").split(",");
  Pattern validGroup = Pattern.compile("^(?:\\w+(?:[.]\\w+)*[.]?|[*])$");
  // skip special case where the first element from split is empty and is the only element
  if (array.length != 1 || !array[0].isEmpty()) {
    for (String g : array) {
      if (!validGroup.matcher(g).matches()) {
        throw new IllegalArgumentException("Invalid group (" + g + ") in (" + groups + ")");
      }
      if (parsedGroups.stream().anyMatch(o -> g.contentEquals(o.getPrefix()))) {
        throw new IllegalArgumentException("Duplicate group (" + g + ") in (" + groups + ")");
      }

      int encounterOrder = parsedGroups.size();
      parsedGroups.add(new Group(g, encounterOrder));
    }
  }
  // include the default group if not already included
  if (parsedGroups.stream().noneMatch(o -> "*".contentEquals(o.getPrefix()))) {
    parsedGroups.add(new Group("*", parsedGroups.size()));
  }
  parsedGroups.sort((a, b) -> {
    // sort in reverse prefix length order first, then encounter order
    int comp = Integer.compare(b.getPrefix().length(), a.getPrefix().length());
    return comp != 0 ? comp : Integer.compare(a.getOrder(), a.getOrder());
  });
  return parsedGroups;
}
 
源代码7 项目: xibalba   文件: MapHelpers.java
/**
 * Get all entities in vision of the player.
 *
 * @return List of entities within player's vision
 */
ArrayList<Entity> getEnemiesInPlayerVision() {
  ArrayList<Entity> enemies = new ArrayList<>();

  PositionComponent position = ComponentMappers.position.get(WorldManager.player);
  AttributesComponent attributes = ComponentMappers.attributes.get(WorldManager.player);

  int positionX = (int) position.pos.x;
  int positionY = (int) position.pos.y;

  for (int x = positionX - attributes.vision; x < positionX + attributes.vision; x++) {
    for (int y = positionY - attributes.vision; y < positionY + attributes.vision; y++) {
      Entity enemy = getEnemyAt(x, y);

      if (enemy != null) {
        enemies.add(enemy);
      }
    }
  }

  enemies.sort((enemy1, enemy2) -> {
    PositionComponent enemy1Position = ComponentMappers.position.get(enemy1);
    PositionComponent enemy2Position = ComponentMappers.position.get(enemy2);

    return enemy1Position.pos.x > enemy2Position.pos.x
        && enemy1Position.pos.y > enemy2Position.pos.y
        ? -1 : 1;
  });

  return enemies;
}
 
源代码8 项目: Wurst7   文件: Navigator.java
public void getSearchResults(ArrayList<Feature> list, String query)
{
	// clear display list
	list.clear();
	
	// add search results
	for(Feature mod : navigatorList)
		if(mod.getName().toLowerCase().contains(query)
			|| mod.getSearchTags().toLowerCase().contains(query)
			|| mod.getDescription().toLowerCase().contains(query))
			list.add(mod);
		
	Comparator<String> c = (o1, o2) -> {
		int index1 = o1.toLowerCase().indexOf(query);
		int index2 = o2.toLowerCase().indexOf(query);
		
		if(index1 == index2)
			return 0;
		else if(index1 == -1)
			return 1;
		else if(index2 == -1)
			return -1;
		else
			return index1 - index2;
	};
	
	// sort search results
	list.sort(Comparator.comparing(Feature::getName, c)
		.thenComparing(Feature::getSearchTags, c)
		.thenComparing(Feature::getDescription, c));
}
 
源代码9 项目: twister2   文件: FirstFitStreamingTaskScheduler.java
/**
 * This method sort the task instances in an increasing order based on the required ram
 * configuration values.
 */
private ArrayList<RequiredRam> getSortedRAMInstances(Set<String> taskNameSet) {
  ArrayList<RequiredRam> ramRequirements = new ArrayList<>();
  TreeSet<Vertex> orderedTaskSet = new TreeSet<>(new VertexComparator());
  orderedTaskSet.addAll(this.taskVertexSet);
  Map<String, Double> taskRamMap = taskAttributes.getTaskRamMap(this.taskVertexSet);
  for (String taskName : taskNameSet) {
    Resource resource = TaskScheduleUtils.getResourceRequirement(taskName, taskRamMap,
        this.defaultResourceValue, this.maxContainerResourceValue, this.paddingPercentage);
    ramRequirements.add(new RequiredRam(taskName, resource.getRam()));
  }
  ramRequirements.sort(Collections.reverseOrder());
  return ramRequirements;
}
 
源代码10 项目: fdb-record-layer   文件: PlanHashable.java
static int stringHashUnordered(@Nonnull Iterable<String> strings) {
    final ArrayList<Integer> hashes = new ArrayList<>();
    for (String str : strings) {
        hashes.add(str != null ? str.hashCode() : 0);
    }
    hashes.sort(Comparator.naturalOrder());
    return combineHashes(hashes);
}
 
源代码11 项目: Mycat2   文件: NodeIndexRange.java
public static List<NodeIndexRange> getLongRanges(Map<String, String> ranges) {
    ArrayList<NodeIndexRange> longRangeList = new ArrayList<>();
    for (Entry<String, String> entry : ranges.entrySet()) {
        String[] pair = entry.getKey().split("-");
        long longStart = NumberParseUtil.parseLong(pair[0].trim());
        long longEnd = NumberParseUtil.parseLong(pair[1].trim());
        int nodeId = Integer.parseInt(entry.getValue().trim());
        longRangeList.add(new NodeIndexRange(nodeId, longStart, longEnd));
    }
    longRangeList.sort(Comparator.comparing(x -> x.valueStart));
    return longRangeList;
}
 
源代码12 项目: Civs   文件: AllianceManager.java
public ArrayList<Alliance> getAllSortedAlliances() {
    ArrayList<Alliance> returnList = getAllAlliances();
    Comparator<Alliance> comparator = new Comparator<Alliance>() {
        @Override
        public int compare(Alliance o1, Alliance o2) {
            int o1Size = o1.getMembers().size();
            int o2Size = o2.getMembers().size();
            return Integer.compare(o1Size, o2Size);
        }
    };
    returnList.sort(comparator);
    return returnList;
}
 
源代码13 项目: onos   文件: NextDstCommand.java
private void printDestinationSet(Map<DestinationSetNextObjectiveStoreKey,
                                  NextNeighbors> ds) {
    ArrayList<DestinationSetNextObjectiveStoreKey> a = new ArrayList<>();
    ds.keySet().forEach(key -> a.add(key));
    a.sort(new Comp());

    StringBuilder dsbldr = new StringBuilder();
    for (int i = 0; i < a.size(); i++) {
        dsbldr.append("\n " + a.get(i));
        dsbldr.append(" --> via: " + ds.get(a.get(i)));
    }
    print(FORMAT_MAPPING, dsbldr.toString());
}
 
源代码14 项目: PackageTemplates   文件: StateEditor.java
public StateEditor reorderFavourites() {
    ArrayList<Favourite> listFavourite = model.getListFavourite();
    listFavourite.sort(Comparator.comparingInt(Favourite::getOrder));

    for (int i = 0; i < listFavourite.size(); i++) {
        listFavourite.get(i).setOrder(i);
    }
    return this;
}
 
源代码15 项目: bisq-core   文件: CurrencyUtil.java
public static List<TradeCurrency> getAllOKPayCurrencies() {
    ArrayList<TradeCurrency> currencies = new ArrayList<>(Arrays.asList(
            new FiatCurrency("EUR"),
            new FiatCurrency("USD"),
            new FiatCurrency("GBP"),
            new FiatCurrency("CHF"),
            new FiatCurrency("RUB"),
            new FiatCurrency("PLN"),
            new FiatCurrency("JPY"),
            new FiatCurrency("CAD"),
            new FiatCurrency("AUD"),
            new FiatCurrency("CZK"),
            new FiatCurrency("NOK"),
            new FiatCurrency("SEK"),
            new FiatCurrency("DKK"),
            new FiatCurrency("HRK"),
            new FiatCurrency("HUF"),
            new FiatCurrency("NZD"),
            new FiatCurrency("RON"),
            new FiatCurrency("TRY"),
            new FiatCurrency("ZAR"),
            new FiatCurrency("HKD"),
            new FiatCurrency("CNY")
    ));
    currencies.sort(Comparator.comparing(TradeCurrency::getCode));
    return currencies;
}
 
源代码16 项目: Box   文件: TypeSearch.java
private void fillTypeCandidates(SSAVar ssaVar) {
	TypeSearchVarInfo varInfo = state.getVarInfo(ssaVar);
	ArgType immutableType = ssaVar.getImmutableType();
	if (immutableType != null) {
		varInfo.markResolved(immutableType);
		return;
	}
	ArgType currentType = ssaVar.getTypeInfo().getType();
	if (currentType.isTypeKnown()) {
		varInfo.markResolved(currentType);
		return;
	}

	Set<ArgType> assigns = new LinkedHashSet<>();
	Set<ArgType> uses = new LinkedHashSet<>();
	Set<ITypeBound> bounds = ssaVar.getTypeInfo().getBounds();
	for (ITypeBound bound : bounds) {
		if (bound.getBound() == BoundEnum.ASSIGN) {
			assigns.add(bound.getType());
		} else {
			uses.add(bound.getType());
		}
	}

	Set<ArgType> candidateTypes = new LinkedHashSet<>();
	addCandidateTypes(bounds, candidateTypes, assigns);
	addCandidateTypes(bounds, candidateTypes, uses);

	for (ArgType assignType : assigns) {
		addCandidateTypes(bounds, candidateTypes, getWiderTypes(assignType));
	}
	for (ArgType useType : uses) {
		addCandidateTypes(bounds, candidateTypes, getNarrowTypes(useType));
	}

	addUsageTypeCandidates(ssaVar, bounds, candidateTypes);

	int size = candidateTypes.size();
	if (size == 0) {
		varInfo.setTypeResolved(true);
		varInfo.setCurrentType(ArgType.UNKNOWN);
		varInfo.setCandidateTypes(Collections.emptyList());
	} else if (size == 1) {
		varInfo.setTypeResolved(true);
		varInfo.setCurrentType(candidateTypes.iterator().next());
		varInfo.setCandidateTypes(Collections.emptyList());
	} else {
		varInfo.setTypeResolved(false);
		varInfo.setCurrentType(ArgType.UNKNOWN);
		ArrayList<ArgType> types = new ArrayList<>(candidateTypes);
		types.sort(typeCompare.getReversedComparator());
		varInfo.setCandidateTypes(Collections.unmodifiableList(types));
	}
}
 
源代码17 项目: presto   文件: TestAsyncQueue.java
@Test
public void testBorrow()
        throws Exception
{
    // The numbers are chosen so that depletion of elements can happen.
    // Size is 5. Two threads each borrowing 3 can deplete the queue.
    // The third thread may try to borrow when the queue is already empty.
    // We also want to confirm that isFinished won't return true even if queue is depleted.

    AsyncQueue<Integer> queue = new AsyncQueue<>(4, executor);
    queue.offer(1);
    queue.offer(2);
    queue.offer(3);
    queue.offer(4);
    queue.offer(5);

    // Repeatedly remove up to 3 elements and re-insert them.
    Runnable runnable = () -> {
        for (int i = 0; i < 700; i++) {
            getFutureValue(queue.borrowBatchAsync(3, elements -> new BorrowResult<>(elements, null)));
        }
    };

    Future<?> future1 = executor.submit(runnable);
    Future<?> future2 = executor.submit(runnable);
    Future<?> future3 = executor.submit(runnable);
    future1.get();
    future2.get();
    future3.get();

    queue.finish();
    assertFalse(queue.isFinished());

    AtomicBoolean done = new AtomicBoolean();
    executor.submit(() -> {
        while (!done.get()) {
            assertFalse(queue.isFinished() || done.get());
        }
    });

    future1 = executor.submit(runnable);
    future2 = executor.submit(runnable);
    future3 = executor.submit(runnable);
    future1.get();
    future2.get();
    future3.get();
    done.set(true);

    assertFalse(queue.isFinished());
    ArrayList<Integer> list = new ArrayList<>(queue.getBatchAsync(100).get());
    list.sort(Integer::compare);
    assertEquals(list, ImmutableList.of(1, 2, 3, 4, 5));
    assertTrue(queue.isFinished());
}
 
源代码18 项目: onos   文件: KShortestPathsSearch.java
@Override
protected Result<V, E> internalSearch(Graph<V, E> graph, V src, V dst, EdgeWeigher<V, E> weigher, int maxPaths) {
    //The modified edge weigher removes any need to modify the original graph
    InnerEdgeWeigher modifiedWeighter = new InnerEdgeWeigher(checkNotNull(weigher));
    checkArgument(maxPaths != ALL_PATHS, "KShortestPath search cannot" +
            "be used with ALL_PATHS.");
    checkArgument(maxPaths > 0, "The max number of paths must be greater" +
            " than 0");
    Graph<V, E> originalGraph = checkNotNull(graph);
    //the result contains the set of eventual results
    InnerOrderedResult result = new InnerOrderedResult(src, dst, maxPaths);
    ArrayList<Path<V, E>> resultPaths = new ArrayList<>(maxPaths);
    ArrayList<Path<V, E>> potentialPaths = Lists.newArrayList();

    DijkstraGraphSearch<V, E> dijkstraSearch = new DijkstraGraphSearch<>();
    Set<Path<V, E>> dijkstraResults = dijkstraSearch.search(originalGraph, src, dst, modifiedWeighter, 1).paths();
    //Checks if the dst was reachable
    if (dijkstraResults.isEmpty()) {
        log.warn("No path was found.");
        return result;
    }
    //If it was reachable adds the first shortest path to the set of results
    resultPaths.add(dijkstraResults.iterator().next());

    for (int k = 1; k < maxPaths; k++) {

        for (int i = 0; i < resultPaths.get(k - 1).edges().size(); i++) {
            V spurNode = resultPaths.get(k - 1).edges().get(i).src();
            List<E> rootPathEdgeList = resultPaths.get(k - 1).edges().subList(0, i);

            for (Path<V, E> path : resultPaths) {
                if (path.edges().size() >= i && edgeListsAreEqual(rootPathEdgeList, path.edges().subList(0, i))) {
                    modifiedWeighter.removedEdges.add(path.edges().get(i));
                }
            }

            //Effectively remove all nodes from the source path
            for (E edge : rootPathEdgeList) {
                originalGraph.getEdgesFrom(edge.src()).forEach(e -> modifiedWeighter.removedEdges.add(e));
                originalGraph.getEdgesTo(edge.src()).forEach(e -> modifiedWeighter.removedEdges.add(e));
            }

            dijkstraResults = dijkstraSearch.search(originalGraph, spurNode, dst, modifiedWeighter, 1).paths();
            if (!dijkstraResults.isEmpty()) {
                Path<V, E> spurPath = dijkstraResults.iterator().next();
                List<E> totalPath = new ArrayList<>(rootPathEdgeList);
                spurPath.edges().forEach(totalPath::add);
                //The following line must use the original weigher not the modified weigher because the modified
                //weigher will count -1 values used for modifying the graph and return an inaccurate cost.
                potentialPaths.add(new DefaultPath<>(totalPath,
                        calculatePathCost(weigher, totalPath)));
            }

            //Restore all removed paths and nodes
            modifiedWeighter.removedEdges.clear();
        }
        if (potentialPaths.isEmpty()) {
            break;
        }
        potentialPaths.sort(new InnerPathComparator());
        resultPaths.add(potentialPaths.get(0));
        potentialPaths.remove(0);
    }
    result.pathSet.addAll(resultPaths);

    return result;
}
 
源代码19 项目: Wizardry   文件: TileCraftingPlateRenderer.java
@Override
public void render(float partialTicks, int destroyStage, float alpha) {
	ArrayList<BlockPos> errors = new ArrayList<>(((IStructure) tile.getBlockType()).testStructure(tile.getWorld(), tile.getPos()));
	errors.sort(Vec3i::compareTo);

	ItemStack input = tile.getInput();
	if (input.isEmpty()) {
		input = tile.getOutput();
		if (input.isEmpty()) {
			input = ItemStack.EMPTY;
		}
	}

	ICraftingPlateRecipe recipeForItem = CraftingPlateRecipeManager.getRecipe(tile.getWorld(), tile.getPos(), input);
	if (recipeForItem != null) recipeForItem.renderInput(tile.getWorld(), tile.getPos(), input, partialTicks);

	if (!errors.isEmpty() && tile.revealStructure && tile.getBlockType() instanceof IStructure) {
		ModStructures.structureManager.draw(ModStructures.CRAFTING_PLATE, (float) (Math.sin(ClientTickHandler.getTicks() / 10.0) + 1) / 10.0f + 0.3f);
	}

	if (!errors.isEmpty()) {
		for (BlockPos error : errors) {
			StructureErrorRenderer.addError(error);
		}
		return;
	} else if (tile.getWorld().isAirBlock(tile.getPos().offset(EnumFacing.UP)) && !CraftingPlateRecipeManager.doesRecipeExist(tile.getWorld(), tile.getPos(), input) && RandUtil.nextInt(4) == 0) {
		LibParticles.CRAFTING_ALTAR_IDLE(tile.getWorld(), new Vec3d(tile.getPos()).add(0.5, 0.7, 0.5));
	}

	// render each item at its current position
	final int mapSize = hoveringStacks.size();
	for (HoveringStack hoveringStack : hoveringStacks.values()) {

		if (!hoveringStack.stack.isEmpty()) {

			{
				GlStateManager.pushMatrix();
				GlStateManager.translate(0.5 + hoveringStack.location.x, 1 + hoveringStack.location.y, 0.5 + hoveringStack.location.z);
				GlStateManager.scale(0.3, 0.3, 0.3);
				GlStateManager.rotate((hoveringStack.randX + ClientTickHandler.getTicks()), 0, 1, 0);
				GlStateManager.rotate((hoveringStack.randY + ClientTickHandler.getTicks()), 1, 0, 0);
				GlStateManager.rotate((hoveringStack.randZ + ClientTickHandler.getTicks()), 0, 0, 1);

				GlStateManager.enableLighting();
				RenderHelper.disableStandardItemLighting();
				Minecraft.getMinecraft().getRenderItem().renderItem(hoveringStack.stack, TransformType.NONE);
				RenderHelper.enableStandardItemLighting();
				GlStateManager.popMatrix();
			}

			if (tile.suckingCooldown <= 0) {
				if (RandUtil.nextInt(mapSize / 2) == 0) {
					LibParticles.CLUSTER_DRAPE(
							tile.getWorld(),
							hoveringStack.location.add(new Vec3d(tile.getPos())).add(0.5, 0.5, 0.5));
				}
			} else {
				if (RandUtil.nextInt(mapSize) == 0) {
					LibParticles.CRAFTING_ALTAR_CLUSTER_SUCTION(
							tile.getWorld(),
							new Vec3d(tile.getPos()).add(0.5, 0.75, 0.5),
							new InterpBezier3D(hoveringStack.location, new Vec3d(0, 0, 0)));
				}
			}
		}
	}
}
 
源代码20 项目: rdf4j   文件: UniqueTest.java
private void runTest(MockInputPlanNode input) {
	Unique unique = new Unique(input);

	List<Tuple> tuples = new MockConsumePlanNode(unique).asList();

	ArrayList<Tuple> expected = new ArrayList<>(new HashSet<>(new MockConsumePlanNode(input).asList()));

	tuples.sort(Tuple::compareTo);
	expected.sort(Tuple::compareTo);

	assertEquals(expected, tuples);
}