List of usage examples for java.util Collections indexOfSubList
public static int indexOfSubList(List<?> source, List<?> target)
From source file:Main.java
public static void main(String args[]) { // create two array list objects List<String> arrlistsrc = new ArrayList<String>(); List<String> arrlisttarget = new ArrayList<String>(); // populate two lists arrlistsrc.add("A"); arrlistsrc.add("from java2s.com"); arrlistsrc.add("C"); arrlistsrc.add("D"); arrlistsrc.add("E"); arrlisttarget.add("C"); arrlisttarget.add("D"); arrlisttarget.add("E"); // check target list in source list int index = Collections.indexOfSubList(arrlistsrc, arrlisttarget); System.out.println("Target list starts at index: " + index); }
From source file:Utilities.java
public static void main(String[] args) { List list = Arrays.asList("one Two three Four five six one".split(" ")); System.out.println(list);/*from w w w .j av a 2s .c o m*/ System.out.println("max: " + Collections.max(list)); System.out.println("min: " + Collections.min(list)); AlphabeticComparator comp = new AlphabeticComparator(); System.out.println("max w/ comparator: " + Collections.max(list, comp)); System.out.println("min w/ comparator: " + Collections.min(list, comp)); List sublist = Arrays.asList("Four five six".split(" ")); System.out.println("indexOfSubList: " + Collections.indexOfSubList(list, sublist)); System.out.println("lastIndexOfSubList: " + Collections.lastIndexOfSubList(list, sublist)); Collections.replaceAll(list, "one", "Yo"); System.out.println("replaceAll: " + list); Collections.reverse(list); System.out.println("reverse: " + list); Collections.rotate(list, 3); System.out.println("rotate: " + list); List source = Arrays.asList("in the matrix".split(" ")); Collections.copy(list, source); System.out.println("copy: " + list); Collections.swap(list, 0, list.size() - 1); System.out.println("swap: " + list); Collections.fill(list, "pop"); System.out.println("fill: " + list); List dups = Collections.nCopies(3, "snap"); System.out.println("dups: " + dups); // Getting an old-style Enumeration: Enumeration e = Collections.enumeration(dups); Vector v = new Vector(); while (e.hasMoreElements()) v.addElement(e.nextElement()); // Converting an old-style Vector // to a List via an Enumeration: ArrayList arrayList = Collections.list(v.elements()); System.out.println("arrayList: " + arrayList); }
From source file:Main.java
public static int indexOfSubList(final List<?> list0, final List<?> list1) { return Collections.indexOfSubList(list0, list1); }
From source file:com.github.fge.jsonschema.walk.ResolvingSchemaWalker.java
private static void checkTrees(final SchemaTree tree, final SchemaTree newTree) throws ProcessingException { /*/*w w w . j av a2s . c o m*/ * We can rely on URIs here: at worst the starting URI was empty, but if * we actually fetched another schema, it will never be the empty URI. A * simple equality check on URIs can immediately tell us whether the * schema is the same. */ if (!tree.getLoadingRef().equals(newTree.getLoadingRef())) return; /* * If it is, we just need to check that their pointers are disjoint. If * they are not, it means one is a prefix for the other one. Test this * by collecting the two trees' token resolvers and see if they share a * common subset at index 0. * * Note that the pointer can not be equal, of course: this would have * been caught by the ref resolver. */ final JsonPointer sourcePointer = tree.getPointer(); final JsonPointer targetPointer = newTree.getPointer(); final List<TokenResolver<JsonNode>> sourceTokens = Lists.newArrayList(sourcePointer); final List<TokenResolver<JsonNode>> targetTokens = Lists.newArrayList(targetPointer); final ProcessingMessage message = new ProcessingMessage().message("").put("schemaURI", tree.getLoadingRef()) .put("source", sourcePointer.toString()).put("target", targetPointer.toString()); String msg; /* * Check if there is an attempt to expand to a parent tree */ msg = BUNDLE.getString("parentExpand"); if (Collections.indexOfSubList(sourceTokens, targetTokens) == 0) throw new SchemaWalkingException(message.message(msg)); /* * Check if there is an attempt to expand to a subtree */ msg = BUNDLE.getString("subtreeExpand"); if (Collections.indexOfSubList(targetTokens, sourceTokens) == 0) throw new SchemaWalkingException(message.message(msg)); }
From source file:com.aliyun.odps.mapred.bridge.LOTGenerator.java
LogicalOperatorTree genTree() { resourceItems = buildResourceList(); LogicalOperatorTree.Builder builder = LogicalOperatorTree.newBuilder(); // prepare input inputTableInfos = InputUtils.getTables(job); inputVolumeInfos = InputUtils.getVolumes(job); // FIXME multi-mapper Map<TableInfoKey, List<LinkedHashMap<String, String>>> inputTables = mergeInputTableInfos(inputTableInfos); // prepare output outputTableInfos = OutputUtils.getTables(job); outputVolumeInfos = OutputUtils.getVolumes(job); // FIXME multi-insert from m-r's mapper isNoOutput = outputTableInfos == null; isMultiInsert = !isNoOutput && outputTableInfos.length > 1; // streaming job has string output columns boolean isStreamingOutput = job.getNumReduceTasks() > 0 ? isStreamingReduce : isStreamingMap; List<OdpsType> outputColumnTypes = new ArrayList<OdpsType>(); if (isMultiInsert) { // concat output columns for multi-insert for (TableInfo ti : outputTableInfos) { List<OdpsType> tbColumnTypes = new ArrayList<OdpsType>(); for (Column col : job.getOutputSchema(ti.getLabel())) { tbColumnTypes.add(col.getType()); }/*from www. ja v a 2 s .c o m*/ // check if the same columns already exists int idx = Collections.indexOfSubList(outputColumnTypes, tbColumnTypes); if (idx >= 0) { // merge columns for tableinfos with the same schema outputIndexes.put(ti.getLabel(), idx); continue; } idx = outputColumns.size(); outputIndexes.put(ti.getLabel(), idx); for (Column col : job.getOutputSchema(ti.getLabel())) { String colName = "multiins" + idx + "_" + col.getName(); if (isStreamingOutput) { outputColumns.add(new Column(colName, OdpsType.STRING)); outputColumnTypes.add(OdpsType.STRING); } else { outputColumns.add(TypeUtils.createColumnWithNewName(colName, col)); outputColumnTypes.add(col.getType()); } } } outputColumns.add(new Column(MULTI_INSERT_SELECTOR, OdpsType.STRING)); } else if (isNoOutput) { // FIXME currently UDTF need a output column outputColumns.add(new Column(NO_OUTPUT_DUMMY_COLUMN, OdpsType.STRING)); } else { for (Column col : job.getOutputSchema(outputTableInfos[0].getLabel())) { if (isStreamingOutput) { outputColumns.add(new Column(col.getName(), OdpsType.STRING)); } else { outputColumns.add(TypeUtils.cloneColumn(col)); } } } // prepare intermediate key/value // FIXME types/signature // FIXME use col name or not? List<Column> mapOutColumns; List<Column> firstReduceInColumns = null; int innerOutputIndex = 0; if (hasReducer) { mapOutColumns = new ArrayList<Column>(); firstReduceInColumns = new ArrayList<Column>(); if (hasPartitioner) { mapOutColumns.add(new Column(PARTITION_ID, OdpsType.BIGINT)); } Column[] keys = this.pipeMode ? pipeline.getFirstNode().getOutputKeySchema() : job.getMapOutputKeySchema(); for (Column col : keys) { Column keyCol = TypeUtils.createColumnWithNewName(MAP_OUT_KEY_PREFIX + col.getName(), col); mapOutColumns.add(keyCol); firstReduceInColumns.add(keyCol); } Column[] values = this.pipeMode ? pipeline.getFirstNode().getOutputValueSchema() : job.getMapOutputValueSchema(); for (Column col : values) { Column valCol = TypeUtils.createColumnWithNewName(MAP_OUT_VAL_PREFIX + col.getName(), col); mapOutColumns.add(valCol); firstReduceInColumns.add(valCol); } } else { mapOutColumns = outputColumns; } //XXX: lot not support multi inputs with inner output String mapperId = genMapBlock(builder, inputTables, mapOutColumns, innerOutputIndex, hasReducer && isInnerOutput && (inputTables.size() <= 1)); if (hasReducer) { genReduceBlock(builder, firstReduceInColumns, mapperId); } else { // map only output handleOutput(builder, false, outputColumns, mapperId, isTableOverwrite, innerOutputIndex); } return builder.build(); }
From source file:com.aliyun.odps.mapred.bridge.UDTFTaskContextImpl.java
private void initOutputSchema() { TableInfo[] tables = getOutputTableInfo(); if (tables == null) { packagedOutputSchema = new Column[] { new Column("nil", OdpsType.STRING) }; return;/*from w w w .j a v a2 s .c o m*/ } List<Column[]> schemas = new ArrayList<Column[]>(); List<OdpsType> outputColumnTypes = new ArrayList<OdpsType>(); boolean multiInsert = tables.length > 1; int length = 0; for (TableInfo t : tables) { Column[] output; if (t.getLabel() == null) { output = conf.getOutputSchema(); } else { output = conf.getOutputSchema(t.getLabel()); } List<OdpsType> tbColumnTypes = new ArrayList<OdpsType>(); for (Column col : output) { tbColumnTypes.add(col.getType()); } // check if the same columns already exists int idx = Collections.indexOfSubList(outputColumnTypes, tbColumnTypes); if (idx >= 0) { // merge columns for tableinfos with the same schema label2offset.put(t.getLabel(), idx); continue; } label2offset.put(t.getLabel(), length); for (Column col : output) { outputColumnTypes.add(col.getType()); } length += output.length; schemas.add(output); } // If multi insert, add 1 additional label field length += (multiInsert ? 1 : 0); // If inner output, add 1 additional label field length += (innerOutput ? 1 : 0); Column[] outputFields = new Column[length]; length = 0; for (Column[] r : schemas) { for (Column f : r) { outputFields[length] = f; length++; } } if (multiInsert) { outputFields[length] = new Column(MULTIDEST_LABEL, OdpsType.STRING); length++; } if (innerOutput) { outputFields[length] = new Column(INNEROUTPUT_LABEL, OdpsType.STRING); } packagedOutputSchema = outputFields; }
From source file:com.codestation.henkakuserver.HenkakuServer.java
/** * Write the url to fetch the next stage into the shellcode * * @param stage code of the current stage * @param url address to fetch the next stage * @return modified shellcode//from w w w . j a va2 s .c o m * @throws UnsupportedEncodingException */ private byte[] writePkgUrl(byte[] stage, String url) throws UnsupportedEncodingException { // prepare search pattern byte[] pattern = new byte[256]; Arrays.fill(pattern, (byte) 0x78); List a = Arrays.asList(ArrayUtils.toObject(stage)); List b = Arrays.asList(ArrayUtils.toObject(pattern)); // find url placeholder in loader int idx = Collections.indexOfSubList(a, b); // convert the url to a byte array byte[] urlArray = url.getBytes("UTF-8"); // write the url in the loader System.arraycopy(urlArray, 0, stage, idx, urlArray.length); Arrays.fill(stage, idx + urlArray.length, idx + 256, (byte) 0x0); return stage; }
From source file:ss16lab.outliers.Statistics.java
public static boolean contains(List<?> list, List<?> sublist) { if (list.size() == sublist.size()) { return false; }// w w w . j a va 2 s . c om if (list.isEmpty() || sublist.isEmpty()) { return false; } return Collections.indexOfSubList(list, sublist) != -1; }