public class Stack {
private int[] data;
private int top = -1;
private static int capacity = 10;
public Stack() {
this(capacity);
}
public Stack(int capacity) {
if (capacity < 0) {
capacity = 0;
}
if (capacity > 100) {
capacity = 100;
}
this.data = new int[capacity];
}
public void push(int e) {
if (size() == data.length) {
System.out.println(">>>栈已满,无法添加元素" + e);
return;
}
data[++top] = e;
}
public int pop() {
if (isEmpty()) {
System.out.println(">>>栈为空,无法弹栈元素");
return -1;
}
return data[top--];
}
public int peek() {
if (isEmpty()) {
System.out.println(">>>栈为空,无法获取栈顶元素");
return -1;
}
return data[top];
}
public boolean isEmpty() {
return top == -1;
}
public void clear() {
top = -1;
}
public int size() {
return top + 1;
}
public String toString() {
if (isEmpty()) {
return "[]";
}
String s = "[";
for (int i = 0; i < size(); i++) {
s += data[i];
if (i == size() - 1) {
s += "]";
} else {
s += ",";
}
}
return s;
}
}
给定一个数字,求该数字的二进制的1的个数
public static int getNumber(int n){
int res = 0;
int t = n;
while (t!=0){
if((t&1)==1){
res++;
}
t=t>>>1;
}
return res;
}
给定一个数组,该数组中除了一个元素只出现了一次,其他元素都出现两次,找到这个没有重复的元素
public class demo4 {
public static void main(String[] args) {
int[] arr = {2,2,1,1,5};
printf(arr);
}
private static void printf(int[] arr) {
// TODO Auto-generated method stub
int num = 0;
for(int i = 0;i<arr.length;i++){
num^=arr[i];
}
System.out.println(num);
}
}
给定一个数组,数组的元素共N+1个, 元素是从1到n的联系自然数,其中一个重复值,找到这个重复的元素
package zuoye;
import java.util.Set;
import java.util.HashSet;
public class demo4 {
public static void main(String[] args) {
int[] arr = {2,2,1,1,5};
printf(arr);
}
private static void printf(int[] arr) {
// TODO Auto-generated method stub
Set<Integer> si = new HashSet<>();
for (int i = 0; i < arr.length; i++) {
int num = si.size();
si.add(arr[i]);
if (si.size()==num) {
System.out.println(arr[i]);
}
}
}
}
定义一个猫类(Cat),该猫有名字、性别、年龄、主人、皮毛
public class TestCat {
public static void main(String[] args) {
Master lbs = new Master();
lbs.name = "离博士";
lbs.age = 19;
lbs.address = "重庆";
lbs.gender = "男";
Cat c1 = new Cat();
c1.name = "小花";
c1.color = "花色";
c1.gender = "公";
c1.age = 3;
// 找到了主人
c1.master = lbs;
// System.out.println(c1.master.name);
// System.out.println(c1.master.age);
Cat c2 = new Cat();
c2.name = "小黑";
c2.color = "黑色";
c2.gender = "母";
c2.age = 2;
// 找到了主人
c2.master = lbs;
// 从主人这个方向关联两只喵
Cat[] cats = {c1, c2};
lbs.cats = cats;
}
}
Class58.自定义String类(类与对象,构造函数)
public class MyString {
public char[] chars;
public MyString(char[] chars) {
this.chars = chars;
}
public MyString() {
chars = new char[0];
}
public char charAt(int index) {
if (index >= this.length()) {
throw new RuntimeException("对不起,下标越界异常");
}
return chars[index];
}
public int length() {
return chars.length;
}
public MyString substring(int begin, int end) {
char[] substr = new char[end - begin];
for (int i = 0; i < substr.length; i++) {
substr[i] = chars[begin + i];
}
return new MyString(substr);
}
public MyString tolower(MyString s) {
char[] substr = new char[this.chars.length];
for (int i = 0; i < substr.length; i++) {
char temp = this.chars[i];
if (temp >= 65 && temp <= 90) {
substr[i] = (char)(this.chars[i] + 32);
} else {
substr[i] = this.chars[i];
}
}
return new MyString(substr);
}
public boolean equals(MyString s1) {
for (int i = 0; i < chars.length; i++) {
if (chars[i] != s1.charAt(i)) {
return false;
}
}
return true;
}
public static MyString valueOf(int i) {
String str = i + "";
char[] substr = new char[str.length()];
for (int j = 0; j < substr.length; j++) {
substr[j] = str.charAt(j);
}
return new MyString(substr);
};
public static void main(String[] args) {
char[] arr = {'t', 'h', 'i', 's', ' ', 'a', ' ', 'b', 'o', 'o', 'k'};
MyString myString = new MyString(arr);
System.out.println(myString.charAt(0));
System.out.println(myString.charAt(5));
System.out.println(myString.length());
User u = new User();
System.out.println(u.gender);
}
}