import java.util.Scanner; Scanner sc = new Scanner(System.in); sc.nextInt(); //下一个整数 sc.nextDouble(); //下一个浮点数 sc.nextLine(); //下一行 sc.hasNextLine(); //是否有下一行 sc.hasNext(); //是否有下一个输入 30 20 35 40 20 18 25 30 50 public class Main { public static void main(String[] args) { //输入代码 Scanner sc = new Scanner(System.in); //总共三行输入 String a1 = sc.nextLine(); String a2 = sc.nextLine(); String[] a11 = a1.split(" "); String[] a22 = a2.split(" "); Integer[] key = new Integer[a22.length]; int disLimit = sc.nextInt(); //采用Map进行存储 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for(int i = 0; i < a11.length; i++){ if(Integer.valueOf(a22[i]) <= disLimit){ map.put(Integer.valueOf(a22[i]), Integer.valueOf(a11[i])); key[i] = Integer.valueOf(a22[i]); } }
// 强转 byte[] b={97,98,99,100,101,102}; String str=new String(b,3,2); System.out.println(str); // 遍历字符串 String s="abcde"; for(int i=0;i<s.length();i++){ char c=s.charAt(i); System.out.print(c+" ");//输出a b c d e,获取字符串 } String[] s1={"a","b","c","d","e"}; for(int i=0;i<s1.length;i++){ System.out.print(s1[i]+" ");//输出a b c d e,获取字符串数组 } // 把String字符串转换为数字 String s = "123.456 "; double d = Double.parseDouble(s); float f = Float.parseFloat(s); int i = Integer.parseInt(str);//str待转换的字符串 // indexof作用 // str.indexOf(','),表示在整个str字符串中检索! // int n3 = str.indexOf(',',n1);表示从n1开始检索! public static void main(String[] args) { String str="Hello, world, !"; int n1 = str.indexOf(','); System.out.println(n1); int n2 = str.indexOf(',',n1+1); System.out.println(n2); int n3 = str.indexOf(',',n1); System.out.println(n3); System.out.println(str.startsWith("H")); System.out.println(str.endsWith("!")); } // Java里面分离小数点要用到转义字符,否则得不到正确答案 String []s = str.split("\\.");
public StringBuffer append(String s):将指定的字符串追加到此字符序列。
StringBuffer insert(int index,String str):在index前插入字符串。
replace(int start, int end, String str):使用给定 String 中的字符替换此序列的子字符串中的字符。
public delete(int start, int end):移除此序列的子字符串中的字符。(从start开始,包含start,到end结束,不包含end)
public StringBuffer reverse():将此字符序列用其反转形式取代。
public class Str { public static void main(String[] args) { // TODO Auto-generated method stub StringBuffer sb = new StringBuffer("good"); sb.append(" study"); System.out.println(sb); sb.reverse(); System.out.println(sb); sb.delete(1,3); //删除下标1和2 System.out.println(sb); sb.insert(3, "hello"); System.out.println(sb); sb.insert(0, "11"); System.out.println(sb); sb.replace(1, 2, "hello"); System.out.println(sb); } } // output: // good study // yduts doog // yts doog // ytshello doog // 11ytshello doog // 1helloytshello doog
package one; import java.util.*; public class Array{ public static void main(String args[]) { // 创建一个空的数组链表对象list,list用来存放String类型的数据 ArrayList<String> list = new ArrayList<String>(); // 增加元素到list对象中 list.add("Item1"); list.add("Item2"); list.add(2, "Item3"); // 此条语句将会把“Item3”字符串增加到list的第3个位置。 list.add("Item4"); // 显示数组链表中的内容 System.out.println("The arraylist contains the following elements: " + list); // 检查元素的位置 int pos = list.indexOf("Item2"); System.out.println("The index of Item2 is: " + pos); // 检查数组链表是否为空 boolean check = list.isEmpty(); System.out.println("Checking if the arraylist is empty: " + check); // 获取链表的大小 int size = list.size(); System.out.println("The size of the list is: " + size); // 检查数组链表中是否包含某元素 boolean element = list.contains("Item5"); System.out.println("Checking if the arraylist contains the object Item5: " + element); // 获取指定位置上的元素 String item = list.get(0); System.out.println("The item is the index 0 is: " + item); // 遍历arraylist中的元素 // 第1种方法: 循环使用元素的索引和链表的大小 System.out.println("Retrieving items with loop using index and size list"); for (int i = 0; i < list.size(); i++) { System.out.println("Index: " + i + " - Item: " + list.get(i)); } // 第2种方法:使用foreach循环 System.out.println("Retrieving items using foreach loop"); for (String str : list) { System.out.println("Item is: " + str); } // 第三种方法:使用迭代器 // hasNext(): 返回true表示链表链表中还有元素 // next(): 返回下一个元素 System.out.println("Retrieving items using iterator"); for (Iterator<String> it = list.iterator(); it.hasNext();) { System.out.println("Item is: " + it.next()); } // 替换元素 list.set(1, "NewItem"); System.out.println("The arraylist after the replacement is: " + list); // 移除元素 // 移除第0个位置上的元素 list.remove(0); // 移除第一次找到的 "Item3"元素 list.remove("Item3"); System.out.println("The final contents of the arraylist are: " + list); // 转换 ArrayList 为 Array String[] simpleArray = list.toArray(new String[list.size()]); System.out.println("The array created after the conversion of our arraylist is: "+ Arrays.toString(simpleArray)); } }
/** * 数字排序 */ @Test public void t2() { List<Integer> list = new ArrayList<>(); list.add(2); list.add(4); list.add(8); list.add(5); list.add(6); // list.sort(new Comparator<Integer>() { // @Override // public int compare(Integer o1, Integer o2) { // //升序 return o1-o2; // //降序 // return o2 - o1; // } // }); //使用 Lambda 表达式 //升序 //list.sort((o1, o2) -> o1 - o2); //降序 list.sort((o1, o2) -> o2 - o1); System.out.println(list); } /** * 字符串排序 */ @Test public void t3() { List<String> list = new ArrayList<>(); list.add("2"); list.add("4"); list.add("du"); list.add("f"); list.add("7"); // list.sort(new Comparator<String>() { // @Override // public int compare(String o1, String o2) { // //升序 return o1.compareTo(o2); // //降序 // return o2.compareTo(o1); // } // }); //使用 Lambda 表达式 //升序 list.sort(String::compareTo); //或 // list.sort((o1, o2) ->o1.compareTo(o2)); // //降序 // list.sort(Comparator.reverseOrder()); //或 // list.sort((o1, o2) ->o2.compareTo(o1)); System.out.println(list); }
import java.util.Arrays; /** * * @author Administrator * */ public class HeapSort { public static void main(String []args){ int []arr = {7,6,7,11,5,12,3,0,1}; System.out.println("排序前:"+Arrays.toString(arr)); sort(arr); System.out.println("排序前:"+Arrays.toString(arr)); } public static void sort(int []arr){ //1.构建大顶堆 for(int i=arr.length/2-1;i>=0;i--){ //从第一个非叶子结点从下至上,从右至左调整结构 adjustHeap(arr,i,arr.length); } //2.调整堆结构+交换堆顶元素与末尾元素 for(int j=arr.length-1;j>0;j--){ swap(arr,0,j);//将堆顶元素与末尾元素进行交换 adjustHeap(arr,0,j);//重新对堆进行调整 } } /** * 调整大顶堆(仅是调整过程,建立在大顶堆已构建的基础上) * @param arr * @param i * @param length */ public static void adjustHeap(int []arr,int i,int length){ int temp = arr[i];//先取出当前元素i for(int k=i*2+1;k<length;k=k*2+1){//从i结点的左子结点开始,也就是2i+1处开始 if(k+1<length && arr[k]<arr[k+1]){//如果左子结点小于右子结点,k指向右子结点 k++; } if(arr[k] >temp){//如果子节点大于父节点,将子节点值赋给父节点(不用进行交换) arr[i] = arr[k]; i = k; }else{ break; } } arr[i] = temp;//将temp值放到最终的位置 } /** * 交换元素 * @param arr * @param a * @param b */ public static void swap(int []arr,int a ,int b){ int temp=arr[a]; arr[a] = arr[b]; arr[b] = temp; } }