1.ArrayList特点
a.长度可变
b.:是一种特殊数据类型,泛型,只能用引用数据类型替换
1.1.ArrayList类的常用方法
a.添加元素
b.获取元素
c.获取长度
d.删除元素
e.修改元素
package day_15;
import java.util.ArrayList;
class ArrayList_classs {
public static void main(String[] args) {
//1.创建集合对象
ArrayList<String> strings = new ArrayList<>();
//2.添加元素
//public boolean add(E e);
strings.add("helloword");
strings.add("good");
strings.add("nice");
//指定索引处添加元素,原来索引处的元素往移动了一位
//public void add(int index, E element);
strings.add(1, "cool");
//输出元素
//直接输出ArrayList对象
System.out.println(strings);
//3.返回指定索引的元素,对原集合不产生任何影响
//public E get(int index);
System.out.println(strings.get(0));
//public int size();
System.out.println(strings.size());
//4.删除元素,返回是否删除成功
//删除元素对原来集合是产生影响的
//public boolean remove(Object o);
System.out.println(strings.remove("good"));
//删除元素,返回被删除的元素
//public E remove(int index);
System.out.println(strings.remove(1));
//5.修改指定索引处的元素,返回被修改的元素
//public E set(int index, E element)
//对原集合是会产生影响的
System.out.println(strings.set(0, "dadadad"));
}
}
2.ArrayList集合的遍历
package day_15;
import java.util.ArrayList;
/**
* 集合的遍历
* 1.逐个打印
* 2.for循环语句输出
*/
class ArrayList_classs {
public static void main(String[] args) {
//创建集合对象
ArrayList<String> strings = new ArrayList<>();
//添加元素
//public boolean add(E e);
strings.add("hello");
strings.add("world");
strings.add("nice!");
//1.for循环遍历数组
for (int i = 0; i < strings.size(); i++) {
String string = strings.get(i);
System.out.println(string);
}
}
}
3.Hashset集合
3.1 set集合的特点
a.存入集合的顺序与取出的顺序不一致
package day_15;
import java.util.HashSet;
public class set_class {
public static void main(String[] args) {
HashSet<String> hashset = new HashSet<String>();
hashset.add("zhang");
hashset.add("xiao");
hashset.add("caicai");
for(String str:hashset){
System.out.println(str);
}
}
}
结果:
xiao
caicai
zhang
Process finished with exit code 0
b.集合中的元素没有索引
c.集合中的元素没有重复:
Hashset元素的唯一性
package day_15;
import java.util.HashSet;
public class set_class {
public static void main(String[] args) {
HashSet<String> hashset = new HashSet<String>();
hashset.add("caicai");
hashset.add("caicai");
for(String str:hashset){
System.out.println(str);
}
}
}
结果:
caicai
Process finished with exit code 0
1.先将元素的hash值与集合中的每一个元素的hash值进行比较 2.如果hash值相同,则不将元素存入集合,否则执行3 3.将元素用equals()方法与集合中的元素进行逐个比较,相等不存入元素否则执行4 4. 将元素存入集合
4.collection与collections的区别
collection是集合体系的最高层,包含了集合的共性
collections是一个工具类,他的方法用来操作colection;
5.collections集合中的方法
5.1 static void swap(List list, int i, int j);
将集合中的制定给的元素进行交换
package day_15;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class set_class {
public static void main(String[] args) {
//static void swap(List list, int i, int j);
//将制定集合中的两个元素交换
List<String> list = new ArrayList<String>();
list.add("cai");
list.add("zhang");
list.add("hui");
Collections.swap(list, 0, 1);
for(String s:list){
System.out.println(s);
}
}
}
结果:
zhang
cai
hui
5.2 static void sirt(List) 根据自然顺序将制定的集合进行排序
package day_15;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class set_class {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(2);
list.add(3);
list.add(1);
Collections.sort(list);
for(Integer s :list){
System.out.println(s);
}
}
}
结果:
1
2
3
5.3 static void shuffle(List list): 使用默认随机源对指定列表进行置换。 每一次运行就会得到不同的结果
package day_15;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class set_class {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(2);
list.add(3);
list.add(1);
Collections.shuffle(list);
for(Integer s :list){
System.out.println(s);
}
结果: 1 2 3或者3 2 1
5.4 static void reverse(List list); 将指定的List集合元素反转
5.5 static void fill(List ist, Object obj);
使用指定的对象填充指定列表的所有元素
package day_15;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class set_class {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(2);
list.add(3);
list.add(1);
Collections.fill(list,6);
for(Integer s :list){
System.out.println(s);
}
}
}
结果:
6
6
6
5.6 statc void copy(List dest, List src)
把原列表中的数据覆盖到目标列标中
如果原集合长度大于目标列表长度,则会抛出IndexOutOfBoundsException异常;如果小于目标集合长度,会将个别元素覆盖。
package day_15;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class set_class {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(2);
List<Integer> list1 = new ArrayList<Integer>();
list1.add(5);
list1.add(6);
Collections.copy(list1,list);
for(Integer s :list1){
System.out.println(s);
}
}
}
结果:
2
6
5.7static int binarySearch(List list, Object key) 使用二分法查找指定元素在指定列表中的位置,返回该元素的索引,找不到返回-1;
package day_15;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class set_class {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(2);
List<Integer> list1 = new ArrayList<Integer>();
list1.add(5);
list1.add(6);
int i = Collections.binarySearch(list1, 6);
System.out.println(i);
}
}
---------------------
【转载,仅作分享,侵删】
作者:初心魏
原文:https://blog.csdn.net/qq_42306803/article/details/86260419
|
|