第六周Java学习总结

Java数组与列表操作

一、创建整型的数组:
1、数组类型【】+数组名 = {value,value,value};

int[]a = {4,5,6,7,8,3,4,3,2};

2、创建数组列表(动态增删元素)
数组列表名 list = new 数组列表名<>();

ArrayList<Integer> list = new ArrayList<>();
list.add(100);//向其中增加元素,可重复添加
...
System.out.println(list);//可换行输出
list.remove( 2);//使用下标访问列表中的值并移除,实现删除功能

运行效果如下:

在这里插入图片描述
那么当我们需要查看列表中完整数据应该怎么实现呢?
3、for循环遍历输出数组
3.1、利用传统for循环遍历数组列表

//
for(int i = 0; i < a.length; i++){
            System.out.print(a[i] + " ");
        }
        System.out.println();
//
for (int i = 0;i<list.size();i++){
            System.out.print(list.get(i)+" ");
        }
        System.out.println();
	3.2、利用增强for循环遍历数组
//
for (int x:a){
            System.out.print(x + " ");
        }
		System.out.println();
for (Integer x:list){
            System.out.print(x + " ");
        }

4、清空列表

 list.clear();

5、对数组a做去重工作

list.add(a[0]);
        for (int i = 1; i < a.length;i++){
            boolean isRepeated = false;
            for (Integer x : list){
                if (a[i] == x){
                   isRepeated = true;
                   break;
                }
            }
            if (!isRepeated){
                list.add(a[i]);
            }
        }
        //输出去重之后的数据元素
        System.out.println(list);

输出结果为:[4,5,6,7,8,3,2]
【课后作业1】编写程序实现“1+2+3+…+99=”的值的输出

//方法1
package net.lesson07;

public class value {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <=99;i=i+2){
          sum = sum + i;
        }
        System.out.println("1+2+3+...+99="+sum);
    }
}
//方法2
package net.lesson07;

public class value {
    public static void main(String[] args) {
        int sum = 0;
        int i = 1;
       while( i <100){
          sum = sum + i;
          i=i+2;
        }
        System.out.println("1+2+3+...+99="+sum);
    }
}

下面具体感受一下java中for 循环和while循环的区别:
在这里插入图片描述
在这里插入图片描述
那么如何保存数组中并不重复的元素呢?

package net.lesson7wek6;
/**
 * 任务:保留数组中并不重复的元素
 */
import java.util.ArrayList;

public class NoRepeat {
    public static void main(String[] args) {
        //创建整型数组
        int[] a = {4,6,7,2,4,5,6,7,8,9,0,9,9};
        //创建数组列表(动态的增删元素)
        ArrayList<Integer> list = new ArrayList<>();
        list.add(100);
        list.add(200);
        list.add(300);
        list.add(400);

        //利用传统for循环遍历数组列表
        for(int i = 0; i < a.length; i++){
            System.out.print(a[i] + " ");
        }
        System.out.println();

        //利用增强for循环遍历数组
        for (int x:a){
            System.out.print(x + " ");
        }
        System.out.println();
        //利用传统for循环遍历数组列表
        for (int i = 0;i<list.size();i++){
            System.out.print(list.get(i)+" ");
        }
        System.out.println();
        //利用增强for循环遍历数组
        for (Integer x:list){
            System.out.print(x + " ");
        }
        System.out.println();
        //清空列表
        list.clear();

        //对数组a做去重工作
        list.add(a[0]);
        for (int i = 1; i < a.length;i++){
            boolean isRepeated = false;
            for (Integer x : list){
                if (a[i] == x){
                   isRepeated = true;
                   break;
                }
            }
            if (!isRepeated){
                list.add(a[i]);
            }
        }
        //输出去重之后的数据元素
        System.out.println(list);
    }
}

课后练习:打印输出200~500之间的质数,每五个之后换行输出,代码如下:

package net.lesson7wek6;

public class Print {
    public static void main(String[] args) {
        int primeNumber = 0;
        for(int i = 200 ;i <= 500;i++){
            boolean isPrime=true;//是否是质数的标志

            for(int j=i-1;j>1;j--){//n除以每个比n小比1大的自然数
                if(i%j==0){//如果有能被整除的,则不是质数
                    isPrime=false;
                }
            }
            if(isPrime){//如果是质数,则打印出来
                System.out.print( i + " ");
                primeNumber++;//记录质数的个数
                if(primeNumber%5==0){
                    //输出5个质数后换行
                    System.out.println();
                }
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值