Java创建数组的三种方法和ArrayList的用法

Java创建数组的三种方法

一.声明并赋值

int[] arr = {1,2,3, …};

二.声明数组名开辟空间

int[] arr;
arr = new int[]{1,2,3, …};

三.声明数组并指定元素个数

int[] arr= new int[6];

下标最大为6,一般赋值时使用for循环。

四.多维数组

int[][] arr = {{1,2,3},{4,5,6},{7,8,9}}; 
int[][] arr = new int[m][n]; 

ArrayList的用法

ArrayList 是 java 集合框架中比较常用的数据结构了。继承自 AbstractList,实现了 List 接口。底层基于数组实现容量大小动态变化。允许 null 的存在。同时还实现了 RandomAccess、Cloneable、Serializable 接口,所以ArrayList 是支持快速访问、复制、序列化的。

一.添加元素

ArrayList 类提供了很多有用的方法,添加元素到 ArrayList 可以使用 add() 方法:

import java.util.ArrayList;

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<String> list= new ArrayList<String>();
        list.add("Google");
        list.add("Weixin");
        list.add("Douyin");
        list.add("Weibo");
        System.out.println(list);
    }
}

二.访问元素

访问 ArrayList 中的元素可以使用 get() 方法:

import java.util.ArrayList;

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<String> list= new ArrayList<String>();
        list.add("Google");
        list.add("Weixin");
        list.add("Douyin");
        list.add("Weibo");
        System.out.println(list.get(1));  // 访问第二个元素
    }
}

ArrayList下标是从0开始的。

三.修改元素

如果要修改 ArrayList 中的元素可以使用 set() 方法:

import java.util.ArrayList;

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<String> list= new ArrayList<String>();
        list.add("Google");
        list.add("Weixin");
        list.add("Douyin");
        list.add("Weibo");
        list.set(2, "QQ"); // 第一个参数为索引位置,第二个为要修改的值
        System.out.println(list);
    }
}

四.删除元素

如果要删除 ArrayList 中的元素可以使用 remove() 方法:

import java.util.ArrayList;

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<String> list= new ArrayList<String>();
        list.add("Google");
        list.add("Weixin");
        list.add("Douyin");
        list.add("Weibo");
        list.remove(3); // 删除第四个元素
        System.out.println(list);
    }
}

五.计算大小

如果要计算 ArrayList 中的元素数量可以使用 size() 方法:

import java.util.ArrayList;

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<String> list= new ArrayList<String>();
        list.add("Google");
        list.add("Weixin");
        list.add("Douyin");
        list.add("Weibo");
        System.out.println(list.size());
    }
}

六.ArrayList排序

Collections 类也是一个非常有用的类,位于 java.util 包中,提供的 sort() 方法可以对字符或数字列表进行排序。

1.以下实例对字母进行排序:

import java.util.ArrayList;
import java.util.Collections;  // 引入 Collections 类

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<String> list= new ArrayList<String>();
        list.add("Google");
        list.add("Weixin");
        list.add("Douyin");
        list.add("Weibo");
        list.add("QQ");
        Collections.sort(list);  // 字母排序
        for (String i : list) {
            System.out.println(i);
        }
    }
}

2.以下实例对数字进行排序:

import java.util.ArrayList;
import java.util.Collections;  // 引入 Collections 类

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList<Integer> num= new ArrayList<Integer>();
        num.add(33);
        num.add(15);
        num.add(20);
        num.add(34);
        num.add(8);
        num.add(12);

        Collections.sort(num);  // 数字排序

        for (int i : num) {
            System.out.println(i);
        }
    }
}

七.遍历ArrayList

1.使用普通for循环

public static void function(){
        ArrayList<String>  list= new ArrayList<>();
        list.add("Google");
        list.add("Weixin");
        list.add("Douyin");
        list.add("Weibo");
        list.add("QQ");
        //使用size()方法获取到集合的长度
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }   

2.使用增强for遍历

public static void function(){
        ArrayList<String>  list= new ArrayList<>();
        list.add("Google");
        list.add("Weixin");
        list.add("Douyin");
        list.add("Weibo");
        list.add("QQ");
        for (String string : list) {
             System.out.println(string);
       }
   }

3.使用迭代器

public static  void foreach(){
         ArrayList<Integer>  list =new ArrayList<>();
         list.add(1);
         list.add(2);
         list.add(3);
         list.add(4);
         ListIterator<Integer>it=list.listIterator();
         
         while(it.hasNext()){
             System.out.println(it.next());
         }   
   }

扩展

一. for each语句(增强性for循环)

用于对数组或实现Iterator接口的列表(ArrayList、LinkedList)集合(Set)等容器对象进行遍历。

int[] arr = {1,2,3};
  for(int i:arr2) {
   System.out.print(i+"\n");
  }

二.length属性

length属性是针对Java中的数组来说的,要求数组的长度可以用其length属性

for(int i=0;i<arr.length;i++) {
   System.out.print(arr[i]);
}

三.随机数

1.Java随机数的三种生成方式

  • new Random()
    借助java.util.Random类来产生一个随机数发生器,也是最常用的一种,构造函数有两个,Random()和Random(long seed)。第一个就是以当前时间为默认种子,第二个是以指定的种子值进行。
import java.util.Random;

public static void main(String[] args)
   {
     Random r = new Random(1);
     for(int i=0 ; i<5 ;  i++)
     {
       int num= r.nextInt(100);
       System.out.println(num);
     }
   }

在我的编译器下产生的五个数均为85 88 47 13 54 ,如果采用Random r = new Random(),产生的随机数就不同,这就是确定种子导致的结果。

  • Math.random()
    第二种方法返回的数值是[0.0,1.0)的double型数值,由于double类数的精度很高,可以在一定程度下看做随机数,借助(int)来进行类型转换就可以得到整数随机数。
public static void main(String[] args)
{    
   int max=100,min=1;
   int num= (int) (Math.random()*(max-min)+min); 
   System.out.println(num);
}
  • currentTimeMillis()
    至于第三种方法虽然不常用,但是也是一种思路。方法返回从1970年1月1日0时0分0秒(这与UNIX系统有关)到现在的一个long型的毫秒数,取模之后即可得到所需范围内的随机数。
public static void main(String[] args)
{    
   int max=100,min=1;
   long randomNum = System.currentTimeMillis();  
   int ran3 = (int) (randomNum%(max-min)+min);  
   System.out.println(ran3);
   
}

2.Java生成指定范围的随机数
我们观察其 Random 对象的 nextInt(int) 方法,发现这个方法将生成 0 ~ 参数之间随机取值的整数。例如(假设先有 Random rand = newRandom();,下同):

import java.util.Random;
public class Test {
	public static void main(String[] args){
	  Random rand = new Random();
	  for(int i=0; i<10; i++) {
	   System.out.println(rand.nextInt(100) + 1);
	  }
	}

取值为[1-100]

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值