本节重点思维导图

数组

public static void main(String[] args) {
int a ;
a=3; int[] b;
b = new int[3];//强制开辟内存空间 int c[] = new int [8]; int[] d = {3,4,5,67};
int[] e = new int[] {3,4,5}; System.out.println(d[2]);
}

例题:产生1到100之间所有奇数组成的数组并输出。要求每10个一行输出

public class Demo {
public static void main(String[] args) {
int[] array = new int[50]; for (int i = 0; i < 50; i++) {
array[i] = 2 * i + 1;
} for (int i = 0; i < 50; i++) {
if (i % 10 == 0)
System.out.println();
System.out.print(array[i] + "\t");
}
} }

 多维数组

 Arrays 类

java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的

  • 给数组赋值:通过 fill 方法。
  • 对数组排序:通过 sort 方法,按升序。
  • 比较数组:通过 equals 方法比较数组中元素值是否相等。
  • 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。

额外补充:

存储在数组当中的数据都属于同一数据类型

比如说一个 int 类型的数组:

int[] arr = { 'a', 25, 45, 78, 'z' };
System.out.println(Arrays.toString(arr));

输出结果是:[97, 25, 45, 78, 122]

存放进去的 char 类型的字符会自动转为 int 类型的 ASCII 码

上面的代码中就将 a 转成了 97,z 转成了 122。

实现数组和字符串的转换处理

public class Test {
public static void main(String args[]) {
String str = "helloworld";
char[] data = str.toCharArray();// 将字符串转为数组
for (int x = 0; x < data.length; x++) {
System.out.print(data[x] + " ");
data[x] -= 32;
System.out.print(data[x] + " ");
}
System.out.println(new String(data));
}
}

冒泡排序

public class BubbleSort {
/**
* N个数字要排序完成,总共进行N-1趟排序,每i趟的排序次数为(N-i)次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数。
* @param args
*/
public static void main(String[] args) {
int arr[] = {26,15,29,66,99,88,36,77,111,1,6,8,8};
for(int i=0;i < arr.length-1;i++) {//外层循环控制排序趟数
for(int j=0; j< arr.length-i-1;j++) {
//内层循环控制每一趟排序多少次
// 把小的值交换到前面
if (arr[j]>arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
System.out.print("第"+(i+1)+"次排序结果:");
//列举每次排序的数据
for(int a=0;a<arr.length;a++) {
System.out.print(arr[a] + "\t");
}
System.out.println("");
}
System.out.println("最终排序结果:");
for(int a = 0; a < arr.length;a++) {
System.out.println(arr[a] + "\t");
}
}
}

选择排序

public class Start
{
public static void main(String[] args)
{
int[] arr={20,60,51,81,285,12,165,51,81,318,186,9,70};
for(int a:arr)
{
System.out.print(a+" ");
} System.out.println("\n"+"---------------从小到大---------------"); arr=toSmall(arr);
for(int a:arr)
{
System.out.print(a+" ");
} System.out.println("\n"+"---------------从大到小---------------"); arr=toBig(arr);
for(int a:arr)
{
System.out.print(a+" ");
}
}
// 从大到小
public static int[] toSmall(int[] arr)
{
//遍历数组里除最后一个的其他所有数,因为最后的对象没有与之可以相比较的数
for(int i=0;i<arr.length-1;i++)
{
/*遍历数组里没有排序的所有数,并与上一个数进行比较
*“k=i+1”因为自身一定等于自身,所以相比没有意义
*而前面已经排好序的数,在比较也没有意义
*/
for(int k=i+1;k<arr.length;k++)
{
if(arr[k]<arr[i])//交换条件(排序条件)
{
int number=arr[i];
arr[i]=arr[k];
arr[k]=number;
}//交换
}
}
return arr;
}
// 从小到大
//和前面一样
public static int[] toBig(int[] arr)
{
for(int i=0;i<arr.length-1;i++)
{
for(int k=i+1;k<arr.length;k++)
{
if(arr[k]>arr[i])
{
int number=arr[i];
arr[i]=arr[k];
arr[k]=number;
}
}
}
return arr;
}
}

最新文章

  1. ***HTML +CSS 总结与归纳
  2. ADO.NET 拾遗
  3. JavaScript常用的经典小技巧
  4. BZOJ2553: [BeiJing2011]禁忌
  5. 追踪CPU跑满 堆栈调试
  6. PE基金的运作模式有哪些?
  7. 我的Python成长之路---第六天---Python基础(20)---2016年2月20日(晴)
  8. 201521123069 《Java程序设计》 第5周学习总结
  9. 网络编程之TCP编程
  10. libevent之event_base
  11. 使用HttpClient进行https连接(一)
  12. 解决MyEclipse注册失败的问题
  13. ViewPagerWithRecyclerDemo【RecyclerView+ViewPager实现类似TabLayout+ViewPager效果】
  14. Spring Boot SSL
  15. 【Java】NO.83.Tool.1.GlassFish.1.001-【GlassFish 5 安装使用】-
  16. 【协议】2、TCP/IP协议三次握手与四次握手流程解析
  17. js通过DOM改变html和css
  18. mongodb ISODate问题(大量数据update优化)
  19. Jmeter(二十一)_完整Demo
  20. D - Frog and Portal (利用斐波那契数列的性质)

热门文章

  1. Android数据库使用指南(下)
  2. Java8 将List转变为逗号分隔的字符串
  3. linux常用的小命令
  4. VB中输入函数InputBox的用法
  5. Win10遇到蓝屏错误CRITICAL_STRUCTURE_CORRUPTION如何解决
  6. vim 修改复制过来的代码缩进
  7. 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
  8. bzoj4819 [Sdoi2017]新生舞会 分数规划+最大费用最大流
  9. 简单了解Spring中常用工具类_java - JAVA
  10. springboot + 注解 + 拦截器 + JWT 实现角色权限控制