對於python的list,相信用過的人都知道有好些很cool的功能,我但願能把這些功能加入到java裏面去。 html
我但願java可以支持一下的Python特性: java
public class Main{ //list define List k=[]; List k1=['1',2,3]; List k2=[k1,k2]; List<Integer> kk=[1,2,3,new Integer(4)]; //list assignment k=[1,'2',3,4,"a","b",6]; k1=k; //list get element int a=k[2]; a=k[-1]; k=k[0:-1]; k=k[2:]; k=k[:2]; k=k[::-1]; //reverse array k=k[1:5:2];// from element 1 to element 5, increase step is 2 //advanced assignment list k3=[i*i for i in k if i <3]; //add k=k+k1; //get length k.length(); //convert k.toString(); //toArrayList k.toarraylist() }這樣,須要修改Javac的Grammer。
Java SE7的語法:http://docs.oracle.com/javase/specs/jls/se7/html/jls-18.html python
進行了一些修改: oracle
下標:(增長ListSubScript) Selector: . Identifier [Arguments] . ExplicitGenericInvocation . this . super SuperSuffix . new [NonWildcardTypeArguments] InnerCreator [ ListSubScript ] ListSubScript: '.' '.' '.' | Expression | [Expression] ':' [Expression] [SliceOP] SliceOP: ':' [Expression] 變量定義和初始化:(增長ListInitializer和ListForInitializer) VariableInitializer: ArrayInitializer Expression ListInitializer ListInitializer: [ [ VariableInitializer { , VariableInitializer } [,] ] ] ListForInitializer ListForInitializer: [Expression for Identifier in Expression [if Expression]] 列表相加和賦值:(在Primary裏面加入ListInitializer) Primary: Literal ParExpression this [Arguments] super SuperSuffix new Creator NonWildcardTypeArguments ( ExplicitGenericInvocationSuffix | this Arguments ) Identifier { . Identifier } [IdentifierSuffix] BasicType {[]} . class void . class ListInitializer