java算法题常用语法

1.创建定长数组

int []count=new int[10];
int count[10];//这种方式是错误的,c++中可以这样,java不行

2.获取数组长度

int[][] matrix;
matrix.length
matrix[0].length

3.创建字符串

 String s1=new String();

4.获取字符串长度

s.length()

5.遍历字符串

for(int i=0;i<s.length();i++)
        {
            char tmp=s.charAt(i);
            。。。
        }

6.获取字符串中的第i个字母

char tmp=s.charAt(i);

7.字符串追加字母

s1+="%20";

8.list转为int[]

		List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        Integer[] res = new Integer[list.size()];
        res = list.toArray(res);
        然后将res循环复制到int数组中

9.java栈

Stack<Integer> s1 = new Stack<>();// 创建一个栈
s1.push(value);//往栈中压入元素
s1.empty();//判断栈是否为空
s1.pop();//栈中元素出栈
s1.peek();//获得栈顶元素,peek:看一眼,瞥一眼
s1.search();//在栈中查找元素

10.取余

%

11.java数组赋值

//一维数组
int[] arr = new int[6];
Arrays.fill(arr, 60);
//二维数组
int[][] a = new int[3][4];

for (int[] temp: a){
	Arrays.fill(temp, 0)
}

12.删除string最后一个元素

String str="hell0o";
str=str.substring(0, str.length() - 1);

13.String类型==和equals区别

Java中String类型的==判断(代码)_又菜又爱玩٩( ö̆ ) و的博客-CSDN博客_java string==

==:

基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,boolean。他们之间的比较,应用双等号(==),比较的是他们的值。

引用数据类型:当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址(确切的说,是堆内存地址)

== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。
equals:

equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断。

尽量使用equals比较两个字符串内容是否相等

14.指数运算

Math.pow(x, y)

返回x的y次方。pow() 方法的返回类型为double。

15.字符串转数字

1.通过 parse 方法,例如Float.parseFloat、Integer.parseInt

2.通过valueOf方法,例如Integer.valueOf

16.数字转字符串

1.toString,例如Integer.toString、Float.toString、Double.toString

2.通过 String 类的 valueOf 方法,例如String.valueOf

17.数组交换元素位置

c++中有swap方法, java数组并没有,只能通过引入temp来交换位置。或者将array转为list,使用Collections.swap来交换list中两个元素的位置

18.list删除元素

remove(index)

19.复制一个list

Collections.copy

@Test
    public void withCopy(){
        List<CustBook> objectList=new ArrayList<>(Arrays.asList(new CustBook("a"),new CustBook("b"),new CustBook("c")));
        List<CustBook> copyobjectList = new ArrayList<>(Arrays.asList(new CustBook("d"),new CustBook("e"),new CustBook("f")));
        Collections.copy(copyobjectList, objectList);
        copyobjectList.get(0).setName("e");
        log.info("{}",objectList);
        log.info("{}",copyobjectList);
    }

addAll方法

@Test
public void withAddAll(){

    List<CustBook> objectList=new ArrayList<>(Arrays.asList(new CustBook("a"),new CustBook("b"),new CustBook("c")));
    List<CustBook> copyobjectList = new ArrayList<>();
    copyobjectList.addAll(objectList);
    copyobjectList.get(0).setName("e");
    log.info("{}",objectList);
    log.info("{}",copyobjectList);
}

以上两种方法均为引用拷贝

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值