java peek函数_java (String) s.peek()是什么意思?

展开全部

s.peek() 表示的是查看堆栈顶部的对象,但不从堆栈中移除它。

除此之外:e69da5e887aa62616964757a686964616f31333337623430

push(E item) 表示的是把项压入堆栈顶部。

pop() 表示的是移除堆栈顶部的对象,并作为此函数的值返回该对象。

empty() 表示的是测试堆栈是否为空。

search(Object o) 表示的是返回对象在堆栈中的位置,以 1 为基数。

以下是从jdk中拿下来的相关方法的源码,可以参看下:public class Stack extends Vector {

/**

* Creates an empty Stack.

*/

public Stack() {

}

/**

* Pushes an item onto the top of this stack. This has exactly

* the same effect as:

 
  

* addElement(item)

*

* @param   item   the item to be pushed onto this stack.

* @return  the item argument.

* @see     java.util.Vector#addElement

*/

public E push(E item) {

addElement(item);

return item;

}

/**

* Removes the object at the top of this stack and returns that

* object as the value of this function.

*

* @return     The object at the top of this stack (the last item

*             of the Vector object).

* @exception  EmptyStackException  if this stack is empty.

*/

public synchronized E pop() {

Eobj;

intlen = size();

obj = peek();

removeElementAt(len - 1);

return obj;

}

/**

* Looks at the object at the top of this stack without removing it

* from the stack.

*

* @return     the object at the top of this stack (the last item

*             of the Vector object).

* @exception  EmptyStackException  if this stack is empty.

*/

public synchronized E peek() {

intlen = size();

if (len == 0)

throw new EmptyStackException();

return elementAt(len - 1);

}

/**

* Tests if this stack is empty.

*

* @return  true if and only if this stack contains

*          no items; false otherwise.

*/

public boolean empty() {

return size() == 0;

}

/**

* Returns the 1-based position where an object is on this stack.

* If the object o occurs as an item in this stack, this

* method returns the distance from the top of the stack of the

* occurrence nearest the top of the stack; the topmost item on the

* stack is considered to be at distance 1. The equals

* method is used to compare o to the

* items in this stack.

*

* @param   o   the desired object.

* @return  the 1-based position from the top of the stack where

*          the object is located; the return value -1

*          indicates that the object is not on the stack.

*/

public synchronized int search(Object o) {

int i = lastIndexOf(o);

if (i >= 0) {

return size() - i;

}

return -1;

}

/** use serialVersionUID from JDK 1.0.2 for interoperability */

private static final long serialVersionUID = 1224463164541339165L;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将一下java代码转成c语言:import java.util.; public class Main { public static boolean judge(char c1,char c2) { char ch[] = {'#','+','-','','/','%','(',')'}; int num1 = 0,num2 = 0; for(int i = 0;i <= 7;i ++) { if(ch[i] == c1) num1 = i; if(ch[i] == c2) num2 = i; } if(num1 > num2) return true; return false; } public static int calculation(int t1,int t2,char c) { if(c == '+') return t2 + t1; else if(c == '-') return t2 - t1; else if(c == '*') return t2 * t1; else if(c == '%') return t2 % t1; else return t2 / t1; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); Stack<Integer> stk_int = new Stack<>(); Stack<Character> stk_str = new Stack<>(); int index = 0; stk_str.push('#'); for(int i = 0;i < s.length();i ++) { if(s.charAt(i) < '0' || s.charAt(i) > '9') { if(index != i) stk_int.push(Integer.parseInt(s.substring(index,i))); index = i+1; boolean flag = false; while(flag == false) { if (judge(s.charAt(i),stk_str.peek())) { stk_str.push(s.charAt(i)); if(stk_str.peek() == '(' ) stk_str.push('#'); if( stk_str.peek() == ')') { stk_str.pop(); while(stk_str.peek()!='#') { stk_int.push(calculation(stk_int.pop(),stk_int.pop(),stk_str.pop())); } stk_str.pop(); stk_str.pop(); } flag = true; } else { stk_int.push(calculation(stk_int.pop(),stk_int.pop(),stk_str.pop())); } } } if(index != s.length() && i == s.length()-1) stk_int.push(Integer.parseInt(s.substring(index,s.length()))); } while(!stk_int.isEmpty() && stk_str.peek()!= '#') { stk_int.push(calculation(stk_int.pop(),stk_int.pop(),stk_str.pop())); } System.out.println(stk_int.pop()); } }
05-28

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值