数组
一维数组
1.数组定义
type[] arrayName 或type arrayName []
int [] arr 或是 int arr2 []
2.静态初始化
type arrayName = new type[]{element1,element2,element3}
例子:int arr []=new int []{1,2,3};
//普通的数组遍历方式
for(int i=0 ;i<arr.length;i++){
system.out.println(arr[i])
}
// foreach方式
for(int z:arr){
system.out.println( z );
}
数组如何取出来,就是用 arr[i]即可
3.动态初始化
arrayName =new type[length]
int arr2[]=new int[3];
arr[0]=1 ;//给数组元素赋值,
int类型默认的数值为0;
二维数组
静态初始化
arrayName =new type[]{{element1,element2},{element1,element2},{element1,element2}}
例子:int[][] arr =new int[][]{{1,2,3},{1,2,3},{1,2,3}}
动态初始化
arrayName=new type[length][length]
例子:int[][] arr =new int[3][3];
arr[1][2]=3//赋值
例子:int arr[][] =new int[][]{{1,2,3},{4,5,6,9},{6,7,8}}
for(int i=0;i<arr.length;i++){
for(int j<0;j<arr[i].length;j++){
system.out.print(arr[i][j] }
}
数组排序例子——————起泡法
对4 ,21,0 ,-12 ,-3排序升序
int arr [ ] ={4,21,-3,-12,0}
int temp;
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length-1-i,j++){
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j+1]=arr[j]
}
}
}
for(int a:arr){
system.out.println(a)
}
二 集合
1.用数组存储
Student students[] =new Student[3];
student[0] =new Student("张三",10);
student[1] =new Student("李四",10);
student[2] =new Student("王五",10);
2.List<E>集合
List是collection接口的子接口。List集合里的元素是可以重复的
List接口的主要实现类有Arraylist 和Linkedlist
2.1Arraylist<E>
ArrayList<String> arraylist =new ArrayList<String>();
arraylist.add("张三");
arraylist.add("李四");
//将指定元素插入到列表中的指定位置 例子:将王五插到第二个位置
arraylist.add(1,"王五");
get(int index) :返回此列表中指定位置上的元素
//将指定的元素替代此列表中指定位置元素
arraylist.set(1,"小王五");
2.2 Linkedlist<E>
LinkedList<String > linkedlist= new LinkedList<String > ();
linkedlist.add("张三");
linkedlist.add("李四");
linkedlist.add("李五");
其特有的方法有:
indexof() 返回此列表中首次出现的指定元素的索引,如果此列表中不包含该元素,则返回-1
如 linkedlist.indexof("李四");
peekFirst()获取但是不移除列表中的第一个元素,如果此列表为空,则返回NULL
peekLast()获取但是不移除列表中的最后一个元素,如果此列表为空,则返回NULL
3.遍历
LinkedList<Student > list= new LinkedList<Student > ();
list.add(new Student("张三",10));
list.add(new Student("李四",10))
list.add(new Student("王五",10))
使用迭代器遍历 iterator
Iterator<Student> it=list.iterator()
while(it.hasNext()){
Student s=it.next();
System.out.println(s);
}
使用for遍历
for( student s :list ){
System.out.println(s);
}
4.set集合是collection接口
Hashset 重要特点:1.不允许存在重复的值 2.无序的
HashSet<String> hs =new HashSet<String> ()
hs.add("232");
hs.add("25");
hs.add("22");
Iterator<String> it =hs.iterator;
while(it.hasNext()){
String s=it.next();
System.out.printIn(s);
}
5. map<k,v>
HashMap<String,Student> hashMap =new Hash<String,Student>();
hashMap .put("1号",new student("张三",10));
hashMap .put("2号",new student("王五",10));
hashMap .put("3号",new student("李四",10));
Student s =hashMap.get("1号");
//获取Key的集合,再获取迭代器
Iterator<String> it=hashMap.keySet().iterator()
whlie(it.hasNext()){
String key=it.next(); //获取key
student student =hashMap.get(key) //获取值
System.out.printIn(s)
)
6.list map set区别
1.list列表是顺序存放的,可以有相同的对象,通过索引存取。
2.set集合是无序存放的,不能有重复的对象,集合无索引,只能通过遍历存取。
3.map:存放的是键和值的映射,其中键是唯一的值,可以有重复的对象
三者联系和区别:三者都是接口。list和set都是单列元素的集合。list和set都是继承了collection.而map不是