前言:
现在朋友们对“java存储”大体比较关怀,大家都需要学习一些“java存储”的相关知识。那么小编在网络上汇集了一些关于“java存储””的相关内容,希望我们能喜欢,姐妹们快快来学习一下吧!/**
* 使用List/Set存储[1,10]整数1到10 不重复,放入顺序随机
*/
public class TestList {
public static void main(String[] args) {
List<Integer> al = new ArrayList<>();
Random r = new Random();
int count=0;
while(al.size()<10){
Integer e = r.nextInt(10)+1;
//.nextInt(10)返回0到9整数,再+1变为1到10
if (!al.contains(e)){
//List允许元素重复 需要在添加之前判断.contains()
al.add(e);
}
count++;
}
System.out.println(al);
//结果[8, 10, 6, 7, 4, 5, 2, 3, 9, 1] List不会自动对容器内的元素更改顺序/排序 每个存入的元素都有index index是从0开始顺序的
System.out.println(count);
}
}
class TestSet{
public static void main(String[] args) {
Set<Integer> hs = new HashSet<>();
int count = 0;
while (hs.size()<10){
hs.add((int)(Math.random()*10+1));
count++;
//Set集合要求元素互异 存入重复元素会被舍弃
}
System.out.println(hs);
//结果[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] HashSet伪排序 初始通过[16]长度数组+单向链表进行存储 每个元素需要.hashCode()返回结果%16 存放到对应的位置
//Integer重写.hashCode()直接return value 1到10%16结果为1到10 遍历时从前往后依次取出 结果恰好为从小到大顺序
System.out.println(count);
hs.add(16);
System.out.println(hs);
//结果[16, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 16%16=0 存放到1的前面 遍历的时候元素的顺序不再有序
}
}
标签: #java存储